summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2001-12-10 16:15:45 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-12-10 16:15:45 +0000
commit4af0425d72423ce20480bd9111213631b385b0ba (patch)
tree80c8cdc17921f6ed872a1a89d200e7ee1da614f2 /src
parentfa803fd88f2c58ea1b234462bfd1070118825718 (diff)
downloadmetacity-4af0425d72423ce20480bd9111213631b385b0ba.tar.gz
metacity-4af0425d72423ce20480bd9111213631b385b0ba.tar.bz2
don't allow grab on docks/desktop for now; needs fixing later to do the
2001-12-10 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_update_unfocused_button_grabs): don't allow grab on docks/desktop for now; needs fixing later to do the grab, but pass thru click, so we can focus those windows. And in fact we need to do that even in sloppy mode.
Diffstat (limited to 'src')
-rw-r--r--src/window.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/window.c b/src/window.c
index bff2e8f..ecbf119 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2028,16 +2028,16 @@ void
meta_window_update_unfocused_button_grabs (MetaWindow *window)
{
/* Grab buttons if we're unfocused and in click-to-focus mode,
- * ungrab otherwise
+ * ungrab otherwise, never grab on panels, menus, etc.
*/
- if (window->unfocused_buttons_grabbed)
+ if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
{
- if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
+ if (window->unfocused_buttons_grabbed)
{
if (window->has_focus)
{
/* Focused so undo grab */
- meta_verbose ("Ungrabbing on focused window %s since mode is click-to-focus\n",
+ meta_verbose ("Ungrabbing on focused window %s\n",
window->desc);
meta_display_ungrab_unfocused_window_buttons (window->display,
window->xwindow);
@@ -2046,19 +2046,12 @@ meta_window_update_unfocused_button_grabs (MetaWindow *window)
}
else
{
- /* Not in click-to-focus so undo grab */
- meta_verbose ("Ungrabbing on window %s since mode is not click-to-focus\n",
- window->desc);
- meta_display_ungrab_unfocused_window_buttons (window->display,
- window->xwindow);
- window->unfocused_buttons_grabbed = FALSE;
- }
- }
- else
- {
- if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
- {
- if (!window->has_focus)
+ /* FIXME This type thing is a temporary hack; what we need to
+ * do is focus these windows, but pass thru click. What we
+ * do now is ignore clicks on them.
+ */
+ if (window->type != META_WINDOW_DOCK &&
+ window->type != META_WINDOW_DESKTOP)
{
/* Not focused so grab */
meta_verbose ("Grabbing on unfocused window %s since mode is click-to-focus\n",
@@ -2069,6 +2062,18 @@ meta_window_update_unfocused_button_grabs (MetaWindow *window)
}
}
}
+ else
+ {
+ if (window->unfocused_buttons_grabbed)
+ {
+ /* Not in click-to-focus so undo grab */
+ meta_verbose ("Ungrabbing on window %s since mode is not click-to-focus\n",
+ window->desc);
+ meta_display_ungrab_unfocused_window_buttons (window->display,
+ window->xwindow);
+ window->unfocused_buttons_grabbed = FALSE;
+ }
+ }
}
void