mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
raise/focus windows on left-click, seem to have broken that yesterday
2001-10-14 Havoc Pennington <hp@pobox.com> * src/frames.c (meta_frames_button_press_event): raise/focus windows on left-click, seem to have broken that yesterday * src/keybindings.c, src/display.c, src/window.c: add keybinding to show/hide all normal windows (so you can see the desktop). Currently Ctrl+Alt+D, which I don't like, but yay.
This commit is contained in:
parent
842eb3fa93
commit
a29c93a95a
@ -1,3 +1,12 @@
|
||||
2001-10-14 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* src/frames.c (meta_frames_button_press_event): raise/focus
|
||||
windows on left-click, seem to have broken that yesterday
|
||||
|
||||
* src/keybindings.c, src/display.c, src/window.c: add keybinding
|
||||
to show/hide all normal windows (so you can see the desktop).
|
||||
Currently Ctrl+Alt+D, which I don't like, but yay.
|
||||
|
||||
2001-10-14 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* src/window.c (meta_window_new): take a window mapped at
|
||||
|
1
README
1
README
@ -49,6 +49,7 @@ METACITY FEATURES
|
||||
Alt-Escape focus previous window
|
||||
Alt-Left Arrow previous workspace
|
||||
Alt-Right Arrow next workspace
|
||||
Ctrl-Alt-D minimize/unminimize all, to show desktop
|
||||
|
||||
- Window keybindings:
|
||||
Alt-space window menu
|
||||
|
@ -172,6 +172,8 @@ meta_display_open (const char *name)
|
||||
|
||||
display->focus_window = NULL;
|
||||
display->prev_focus_window = NULL;
|
||||
|
||||
display->showing_desktop = FALSE;
|
||||
|
||||
/* we have to go ahead and do this so error handlers work */
|
||||
all_displays = g_slist_prepend (all_displays, display);
|
||||
@ -1722,3 +1724,45 @@ meta_display_update_active_window_hint (MetaDisplay *display)
|
||||
tmp = tmp->next;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
queue_windows_showing (MetaDisplay *display)
|
||||
{
|
||||
GSList *windows;
|
||||
GSList *tmp;
|
||||
|
||||
windows = meta_display_list_windows (display);
|
||||
|
||||
tmp = windows;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
meta_window_queue_calc_showing (tmp->data);
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
|
||||
g_slist_free (windows);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_show_desktop (MetaDisplay *display)
|
||||
{
|
||||
|
||||
if (display->showing_desktop)
|
||||
return;
|
||||
|
||||
display->showing_desktop = TRUE;
|
||||
|
||||
queue_windows_showing (display);
|
||||
}
|
||||
|
||||
void
|
||||
meta_display_unshow_desktop (MetaDisplay *display)
|
||||
{
|
||||
if (!display->showing_desktop)
|
||||
return;
|
||||
|
||||
display->showing_desktop = FALSE;
|
||||
|
||||
queue_windows_showing (display);
|
||||
}
|
||||
|
@ -111,6 +111,8 @@ struct _MetaDisplay
|
||||
MetaWindow *prev_focus_window;
|
||||
|
||||
GList *workspaces;
|
||||
|
||||
guint showing_desktop : 1;
|
||||
|
||||
/*< private-ish >*/
|
||||
MetaEventQueue *events;
|
||||
@ -197,4 +199,8 @@ void meta_display_increment_event_serial (MetaDisplay *display);
|
||||
|
||||
void meta_display_update_active_window_hint (MetaDisplay *display);
|
||||
|
||||
/* Show/hide the desktop (temporarily hide all windows) */
|
||||
void meta_display_show_desktop (MetaDisplay *display);
|
||||
void meta_display_unshow_desktop (MetaDisplay *display);
|
||||
|
||||
#endif
|
||||
|
@ -1025,6 +1025,15 @@ meta_frames_button_press_event (GtkWidget *widget,
|
||||
|
||||
if (control == META_FRAME_CONTROL_CLIENT_AREA)
|
||||
return FALSE; /* not on the frame, just passed through from client */
|
||||
|
||||
if (event->button == 1)
|
||||
{
|
||||
meta_core_user_raise (gdk_display,
|
||||
frame->xwindow);
|
||||
meta_core_user_focus (gdk_display,
|
||||
frame->xwindow,
|
||||
event->time);
|
||||
}
|
||||
|
||||
/* We want to shade even if we have a GrabOp, since we'll have a move grab
|
||||
* if we double click the titlebar.
|
||||
|
@ -61,11 +61,16 @@ static void handle_workspace_left (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
gpointer data);
|
||||
static void handle_workspace_right (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
gpointer data);
|
||||
static void handle_workspace_right (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
gpointer data);
|
||||
static void handle_toggle_desktop (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
gpointer data);
|
||||
|
||||
|
||||
static gboolean process_keyboard_move_grab (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
@ -110,6 +115,8 @@ static MetaKeyBinding screen_bindings[] = {
|
||||
{ XK_Escape, Mod1Mask, KeyPress, handle_focus_previous, NULL, 0 },
|
||||
{ XK_Left, Mod1Mask, KeyPress, handle_workspace_left, NULL, 0 },
|
||||
{ XK_Right, Mod1Mask, KeyPress, handle_workspace_right, NULL, 0 },
|
||||
/* I don't like this binding, but haven't picked the right one yet */
|
||||
{ XK_d, Mod1Mask | ControlMask, KeyPress, handle_toggle_desktop, NULL, 0 },
|
||||
{ None, 0, 0, NULL, NULL, 0 }
|
||||
};
|
||||
|
||||
@ -867,6 +874,18 @@ handle_workspace_right (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
handle_toggle_desktop (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
gpointer data)
|
||||
{
|
||||
if (display->showing_desktop)
|
||||
meta_display_unshow_desktop (display);
|
||||
else
|
||||
meta_display_show_desktop (display);
|
||||
}
|
||||
|
||||
static void
|
||||
handle_activate_menu (MetaDisplay *display,
|
||||
MetaWindow *event_window,
|
||||
|
@ -1,5 +0,0 @@
|
||||
Makefile.in
|
||||
Makefile
|
||||
.libs
|
||||
.deps
|
||||
metacity-uislave
|
10
src/window.c
10
src/window.c
@ -814,6 +814,16 @@ meta_window_calc_showing (MetaWindow *window)
|
||||
on_workspace = TRUE;
|
||||
meta_verbose ("Window %s is on all workspaces\n", window->desc);
|
||||
}
|
||||
|
||||
if (on_workspace &&
|
||||
window->display->showing_desktop &&
|
||||
window->type != META_WINDOW_DESKTOP &&
|
||||
window->type != META_WINDOW_DOCK)
|
||||
{
|
||||
meta_verbose ("Window %s is on current workspace, but we're showing the desktop\n",
|
||||
window->desc);
|
||||
on_workspace = FALSE;
|
||||
}
|
||||
|
||||
if (window->minimized || !on_workspace)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user