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 _______________________________________________ wm-spec-list mailing list wm-spec-list@gnome.org https://mail.gnome.org/mailman/listinfo/wm-spec-list