feat: add expose all windows keybinding and Alt-drag window manipulation with floating state tracking
Implement key_expose_all function bound to Alt+Space that unminimizes, unmaximizes, and unfullscreens all windows on current workspace then rearranges. Add floating_before_maximize boolean to Client struct to preserve floating state when toggling maximize. Enable Alt+LeftDrag for moving and Alt+RightDrag for resizing windows from any position with directional cursor support. Increase resize edge detection from 8 to 12 pixels. Add panel.h dependency to keys build target and update shortcut help text with new bindings.
This commit is contained in:
@@ -125,6 +125,7 @@ struct Client {
|
||||
char title[256];
|
||||
char class[64];
|
||||
SnapConstraint snap;
|
||||
bool floating_before_maximize;
|
||||
unsigned long taskbar_color;
|
||||
ColorAnimation title_anim;
|
||||
TextGlowAnimation text_glow;
|
||||
@@ -219,6 +220,17 @@ typedef struct {
|
||||
int last_mouse_x;
|
||||
int last_mouse_y;
|
||||
bool mouse_tracking_initialized;
|
||||
|
||||
Cursor cursor_default;
|
||||
Cursor cursor_resize_top_left;
|
||||
Cursor cursor_resize_top_right;
|
||||
Cursor cursor_resize_bottom_left;
|
||||
Cursor cursor_resize_bottom_right;
|
||||
Cursor cursor_resize_left;
|
||||
Cursor cursor_resize_right;
|
||||
Cursor cursor_resize_top;
|
||||
Cursor cursor_resize_bottom;
|
||||
Cursor cursor_move;
|
||||
} DWNState;
|
||||
|
||||
#define PHASE_OFFSET_PANEL_BG 0.0f
|
||||
|
||||
@@ -100,6 +100,7 @@ void key_resize_window_up(void);
|
||||
void key_resize_window_down(void);
|
||||
void key_set_mark(void);
|
||||
void key_goto_mark(void);
|
||||
void key_expose_all(void);
|
||||
|
||||
void tutorial_start(void);
|
||||
void tutorial_stop(void);
|
||||
|
||||
Reference in New Issue
Block a user