Re: Client messages _NET_WM_SHOW_WINDOW_MENU and _NET_WM_PERFO RM_BUTTON_ACTION



On Mon, 30 Jun 2014 11:38:37, Jasper St. Pierre wrote:

For _NET_WM_PERFORM_BUTTON_ACTION, should these be used for left-clicking to
start moving and resizing? We would have to specify the different corner
regions, so no, I don't think so.

I don't think that's required.
Since you're right that this is about the titlebar only, the client would (as present) trigger a corner related resize 
internally, but generate a ClientMessage when the user clicks "somewhere else" (dead area in the titlebar, no 
resize handle nor button)

maybe even change the name to PERFORM_TITLEBAR_ACTION perhaps?
_NET_WM_TITLEBAR_MOUSE_DOWN - or sth. less clumsy.
Imo the message should hint what happened, not what it expects as reaction from the WM.


_NET_WM_WINDOW_MENU looks fine to me, but maybe add a timestamp field for
good measure? You can never go wrong with an extra timestamp field.

+1 for the timestamp (allowing the WM to drop the message if another client has a more recent usertime, the 
input device was already released etc.)

otoh i'd make the coordinated mandatory ("must") for at least _NET_WM_WINDOW_MENU to prevent resolution 
conflicts.

Scenario 1:
-----------
the user presses a menu button in the CSD, the UI (style) would usually open a menu below that button (not 
*exactly* where the pointer is)
If not certain whether the client eg. explicitly set the coordinates to 0,0 or the toolkit inited the value 
by this, the demanded position cannot be resolved (not even heuristically if the pointer is near the 0,0 
corner)

Scenario 2:
-----------
X11 is still async. If you click somewhere into the CSD, move the cursor around and the WM receives the event 500ms 
later, the popup shows up "somewhere"

The explicit wish to use the (current) pointer coordinates should be made explicit by using XCB_CURRENT_TIME 
and setting the coordinates to a define invalid value (eg. -1,-1 - popups are usually not spawned out of 
screen)

Cheers,
Thomas


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]