Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on windows.
2003-06-26 Rob Adams <robadams@ucla.edu> Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on windows. Disabled by default. See #98387. * src/keybindings.c (handle_toggle_above): new function implements the keybinding * src/metacity.schemas.in: add toggle_above keybinding * src/prefs.[ch]: add toggle_above keybinding * src/window.[ch] (meta_window_make_above): new function to put a window into the above state (meta_window_unmake_above): new function takes a window out of the above state
This commit is contained in:
parent
b6389fbf60
commit
34ec58af0a
19
ChangeLog
19
ChangeLog
@ -1,9 +1,26 @@
|
|||||||
|
2003-06-26 Rob Adams <robadams@ucla.edu>
|
||||||
|
|
||||||
|
Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on
|
||||||
|
windows. Disabled by default. See #98387.
|
||||||
|
|
||||||
|
* src/keybindings.c (handle_toggle_above): new function implements
|
||||||
|
the keybinding
|
||||||
|
|
||||||
|
* src/metacity.schemas.in: add toggle_above keybinding
|
||||||
|
|
||||||
|
* src/prefs.[ch]: add toggle_above keybinding
|
||||||
|
|
||||||
|
* src/window.[ch] (meta_window_make_above): new function to put a
|
||||||
|
window into the above state
|
||||||
|
(meta_window_unmake_above): new function takes a window out of the
|
||||||
|
above state
|
||||||
|
|
||||||
2003-06-26 Mohammad DAMT <mdamt@bisnisweb.com>
|
2003-06-26 Mohammad DAMT <mdamt@bisnisweb.com>
|
||||||
|
|
||||||
* po/id.po: Added Indonesian translation
|
* po/id.po: Added Indonesian translation
|
||||||
* configure.in: Added "id" to ALL_LINGUAS
|
* configure.in: Added "id" to ALL_LINGUAS
|
||||||
|
|
||||||
2003-06-10 Rob Adams <robadams@ucla.edu>
|
2003-06-25 Rob Adams <robadams@ucla.edu>
|
||||||
|
|
||||||
Update constraints code to support the new _NET_WM_STRUT_PARTIAL
|
Update constraints code to support the new _NET_WM_STRUT_PARTIAL
|
||||||
EWMH draft specification. See #86682. Also, fix a bug involving
|
EWMH draft specification. See #86682. Also, fix a bug involving
|
||||||
|
@ -84,6 +84,11 @@ static void handle_panel_keybinding (MetaDisplay *display,
|
|||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
XEvent *event,
|
XEvent *event,
|
||||||
MetaKeyBinding *binding);
|
MetaKeyBinding *binding);
|
||||||
|
static void handle_toggle_above (MetaDisplay *display,
|
||||||
|
MetaScreen *screen,
|
||||||
|
MetaWindow *window,
|
||||||
|
XEvent *event,
|
||||||
|
MetaKeyBinding *binding);
|
||||||
static void handle_toggle_maximize (MetaDisplay *display,
|
static void handle_toggle_maximize (MetaDisplay *display,
|
||||||
MetaScreen *screen,
|
MetaScreen *screen,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
@ -353,6 +358,7 @@ static const MetaKeyHandler screen_handlers[] = {
|
|||||||
static const MetaKeyHandler window_handlers[] = {
|
static const MetaKeyHandler window_handlers[] = {
|
||||||
{ META_KEYBINDING_WINDOW_MENU, handle_activate_menu, NULL },
|
{ META_KEYBINDING_WINDOW_MENU, handle_activate_menu, NULL },
|
||||||
{ META_KEYBINDING_TOGGLE_FULLSCREEN, handle_toggle_fullscreen, NULL },
|
{ META_KEYBINDING_TOGGLE_FULLSCREEN, handle_toggle_fullscreen, NULL },
|
||||||
|
{ META_KEYBINDING_TOGGLE_ABOVE, handle_toggle_above, NULL },
|
||||||
{ META_KEYBINDING_TOGGLE_MAXIMIZE, handle_toggle_maximize, NULL },
|
{ META_KEYBINDING_TOGGLE_MAXIMIZE, handle_toggle_maximize, NULL },
|
||||||
{ META_KEYBINDING_MAXIMIZE, handle_maximize, NULL },
|
{ META_KEYBINDING_MAXIMIZE, handle_maximize, NULL },
|
||||||
{ META_KEYBINDING_UNMAXIMIZE, handle_unmaximize, NULL },
|
{ META_KEYBINDING_UNMAXIMIZE, handle_unmaximize, NULL },
|
||||||
@ -2860,6 +2866,22 @@ handle_toggle_fullscreen (MetaDisplay *display,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
handle_toggle_above (MetaDisplay *display,
|
||||||
|
MetaScreen *screen,
|
||||||
|
MetaWindow *window,
|
||||||
|
XEvent *event,
|
||||||
|
MetaKeyBinding *binding)
|
||||||
|
{
|
||||||
|
if (window)
|
||||||
|
{
|
||||||
|
if (window->wm_state_above)
|
||||||
|
meta_window_unmake_above (window);
|
||||||
|
else
|
||||||
|
meta_window_make_above (window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_toggle_maximize (MetaDisplay *display,
|
handle_toggle_maximize (MetaDisplay *display,
|
||||||
MetaScreen *screen,
|
MetaScreen *screen,
|
||||||
|
@ -302,6 +302,29 @@ you set
|
|||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
|
<schema>
|
||||||
|
<key>/schemas/apps/metacity/window_keybindings/toggle_above</key>
|
||||||
|
<applyto>/apps/metacity/window_keybindings/toggle_above</applyto>
|
||||||
|
<owner>metacity</owner>
|
||||||
|
<type>string</type>
|
||||||
|
<default>disabled</default>
|
||||||
|
<locale name="C">
|
||||||
|
<short>Toggle always on top state</short>
|
||||||
|
<long>
|
||||||
|
|
||||||
|
The keybinding used to toggle always on top. A window that
|
||||||
|
is always on top will always be visible over other overlapping windows.
|
||||||
|
The format looks like "<Control>a" or "<Shift><Alt>F1.
|
||||||
|
The parser is
|
||||||
|
fairly liberal and allows lower or upper case, and also
|
||||||
|
abbreviations such as "<Ctl>" and "<Ctrl>". If
|
||||||
|
you set
|
||||||
|
the option to the special string "disabled", then there
|
||||||
|
will be no keybinding for this action.
|
||||||
|
</long>
|
||||||
|
</locale>
|
||||||
|
</schema>
|
||||||
|
|
||||||
<schema>
|
<schema>
|
||||||
<key>/schemas/apps/metacity/window_keybindings/toggle_maximized</key>
|
<key>/schemas/apps/metacity/window_keybindings/toggle_maximized</key>
|
||||||
<applyto>/apps/metacity/window_keybindings/toggle_maximized</applyto>
|
<applyto>/apps/metacity/window_keybindings/toggle_maximized</applyto>
|
||||||
|
@ -1411,6 +1411,7 @@ static MetaKeyPref window_bindings[] = {
|
|||||||
{ META_KEYBINDING_WINDOW_MENU, 0, 0, FALSE },
|
{ META_KEYBINDING_WINDOW_MENU, 0, 0, FALSE },
|
||||||
{ META_KEYBINDING_TOGGLE_FULLSCREEN, 0, 0, FALSE },
|
{ META_KEYBINDING_TOGGLE_FULLSCREEN, 0, 0, FALSE },
|
||||||
{ META_KEYBINDING_TOGGLE_MAXIMIZE, 0, 0, FALSE },
|
{ META_KEYBINDING_TOGGLE_MAXIMIZE, 0, 0, FALSE },
|
||||||
|
{ META_KEYBINDING_TOGGLE_ABOVE, 0, 0, FALSE },
|
||||||
{ META_KEYBINDING_MAXIMIZE, 0, 0, FALSE },
|
{ META_KEYBINDING_MAXIMIZE, 0, 0, FALSE },
|
||||||
{ META_KEYBINDING_UNMAXIMIZE, 0, 0, FALSE },
|
{ META_KEYBINDING_UNMAXIMIZE, 0, 0, FALSE },
|
||||||
{ META_KEYBINDING_TOGGLE_SHADE, 0, 0, FALSE },
|
{ META_KEYBINDING_TOGGLE_SHADE, 0, 0, FALSE },
|
||||||
|
@ -150,6 +150,7 @@ void meta_prefs_change_workspace_name (int i,
|
|||||||
#define META_KEYBINDING_WINDOW_MENU "activate_window_menu"
|
#define META_KEYBINDING_WINDOW_MENU "activate_window_menu"
|
||||||
#define META_KEYBINDING_TOGGLE_FULLSCREEN "toggle_fullscreen"
|
#define META_KEYBINDING_TOGGLE_FULLSCREEN "toggle_fullscreen"
|
||||||
#define META_KEYBINDING_TOGGLE_MAXIMIZE "toggle_maximized"
|
#define META_KEYBINDING_TOGGLE_MAXIMIZE "toggle_maximized"
|
||||||
|
#define META_KEYBINDING_TOGGLE_ABOVE "toggle_above"
|
||||||
#define META_KEYBINDING_MAXIMIZE "maximize"
|
#define META_KEYBINDING_MAXIMIZE "maximize"
|
||||||
#define META_KEYBINDING_UNMAXIMIZE "unmaximize"
|
#define META_KEYBINDING_UNMAXIMIZE "unmaximize"
|
||||||
#define META_KEYBINDING_TOGGLE_SHADE "toggle_shaded"
|
#define META_KEYBINDING_TOGGLE_SHADE "toggle_shaded"
|
||||||
|
17
src/window.c
17
src/window.c
@ -1867,6 +1867,23 @@ meta_window_unmaximize (MetaWindow *window)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_window_make_above (MetaWindow *window)
|
||||||
|
{
|
||||||
|
window->wm_state_above = TRUE;
|
||||||
|
meta_window_update_layer (window);
|
||||||
|
meta_window_raise (window);
|
||||||
|
set_net_wm_state (window);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_window_unmake_above (MetaWindow *window)
|
||||||
|
{
|
||||||
|
window->wm_state_above = FALSE;
|
||||||
|
meta_window_raise (window);
|
||||||
|
meta_window_update_layer (window);
|
||||||
|
set_net_wm_state (window);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_window_make_fullscreen (MetaWindow *window)
|
meta_window_make_fullscreen (MetaWindow *window)
|
||||||
|
@ -317,6 +317,8 @@ void meta_window_maximize (MetaWindow *window);
|
|||||||
void meta_window_maximize_internal (MetaWindow *window,
|
void meta_window_maximize_internal (MetaWindow *window,
|
||||||
MetaRectangle *saved_rect);
|
MetaRectangle *saved_rect);
|
||||||
void meta_window_unmaximize (MetaWindow *window);
|
void meta_window_unmaximize (MetaWindow *window);
|
||||||
|
void meta_window_make_above (MetaWindow *window);
|
||||||
|
void meta_window_unmake_above (MetaWindow *window);
|
||||||
void meta_window_shade (MetaWindow *window);
|
void meta_window_shade (MetaWindow *window);
|
||||||
void meta_window_unshade (MetaWindow *window);
|
void meta_window_unshade (MetaWindow *window);
|
||||||
void meta_window_change_workspace (MetaWindow *window,
|
void meta_window_change_workspace (MetaWindow *window,
|
||||||
|
Loading…
Reference in New Issue
Block a user