gnome-shell-plugin: Remove old code to detect crossing events
Ever since we stopped reparenting status icon windows to the stage, tray icons haven't been inferiors and thus we don't have to filter out enter/leave events for them, as we never show them outside of a modal. https://bugzilla.gnome.org/show_bug.cgi?id=706536
This commit is contained in:
parent
7234aa601f
commit
8581e980e9
@ -320,38 +320,6 @@ gnome_shell_plugin_kill_switch_workspace (MetaPlugin *plugin)
|
|||||||
_shell_wm_kill_switch_workspace (get_shell_wm());
|
_shell_wm_kill_switch_workspace (get_shell_wm());
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
ignore_crossing_event (MetaPlugin *plugin,
|
|
||||||
XIEnterEvent *enter_event)
|
|
||||||
{
|
|
||||||
MetaScreen *screen = meta_plugin_get_screen (plugin);
|
|
||||||
ClutterStage *stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
|
|
||||||
|
|
||||||
if (enter_event->event == clutter_x11_get_stage_window (stage))
|
|
||||||
{
|
|
||||||
/* If the pointer enters a child of the stage window (eg, a
|
|
||||||
* trayicon), we want to consider it to still be in the stage,
|
|
||||||
* so don't let Clutter see the event.
|
|
||||||
*/
|
|
||||||
if (enter_event->detail == XINotifyInferior)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
/* If the pointer is grabbed by a window it is not currently in,
|
|
||||||
* filter that out as well. In particular, if a trayicon grabs
|
|
||||||
* the pointer after a click on its label, we don't want to hide
|
|
||||||
* the message tray. Filtering out this event will leave Clutter
|
|
||||||
* out of sync, but that happens fairly often with grabs, and we
|
|
||||||
* can work around it. (Eg, shell_global_sync_pointer().)
|
|
||||||
*/
|
|
||||||
if (enter_event->mode == XINotifyGrab &&
|
|
||||||
(enter_event->detail == XINotifyNonlinear ||
|
|
||||||
enter_event->detail == XINotifyNonlinearVirtual))
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
||||||
XEvent *xev)
|
XEvent *xev)
|
||||||
@ -377,18 +345,6 @@ gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Make sure that Clutter doesn't see certain focus change events,
|
|
||||||
* so that when we're moving into something like a tray icon, we
|
|
||||||
* don't unfocus the container. */
|
|
||||||
if (xev->type == GenericEvent &&
|
|
||||||
xev->xcookie.extension == meta_display_get_xinput_opcode (display))
|
|
||||||
{
|
|
||||||
XIEvent *input_event = (XIEvent *) xev->xcookie.data;
|
|
||||||
if ((input_event->evtype == XI_Enter || input_event->evtype == XI_Leave) &&
|
|
||||||
ignore_crossing_event (plugin, (XIEnterEvent *) input_event))
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pass the event to shell-global
|
* Pass the event to shell-global
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user