Change some variable names & cleanup

This commit is contained in:
speedie 2023-07-27 00:39:57 +02:00
parent 526e2a8613
commit ece810805d
6 changed files with 67 additions and 65 deletions

View file

@ -597,13 +597,15 @@ int drawcaps(int x, int y, int w) {
} }
void drawmenu(void) { void drawmenu(void) {
if (sp.isdrawing) {
while (sp.isdrawing != 0) {
;
}
}
sp.isdrawing = 1;
#if USEWAYLAND #if USEWAYLAND
if (protocol) { if (protocol) {
drawmenu_layer();
#if USEIMAGE
drawimage();
#endif
if (listfile) { if (listfile) {
readstdin(); readstdin();
@ -616,15 +618,16 @@ void drawmenu(void) {
currentitem = nextitem; currentitem = nextitem;
} }
} }
}
}
drawmenu_layer(); drawmenu_layer();
}
}
wl_surface_set_buffer_scale(state.surface, 1); #if USEIMAGE
wl_surface_attach(state.surface, state.buffer, 0, 0); drawimage();
wl_surface_damage(state.surface, 0, 0, state.width, state.height); #endif
wl_surface_commit(state.surface);
commit_drawable(&state);
} else { } else {
#endif #endif
#if USEX #if USEX
@ -641,11 +644,19 @@ void drawmenu(void) {
} }
} }
} }
drawmenu_layer(); drawmenu_layer();
#if USEIMAGE
drawimage();
#endif
draw_map(draw, win, 0, 0, sp.mw, sp.mh);
#endif #endif
#if USEWAYLAND #if USEWAYLAND
} }
#endif #endif
sp.isdrawing = 0;
} }
void drawmenu_layer(void) { void drawmenu_layer(void) {
@ -739,11 +750,4 @@ void drawmenu_layer(void) {
w w
); );
} }
#if USEX
#if USEIMAGE
drawimage();
#endif
draw_map(draw, win, 0, 0, sp.mw, sp.mh);
#endif
} }

View file

@ -366,7 +366,7 @@ void resizetoimageheight_x11(int imageheight) {
jumptoindex(i); jumptoindex(i);
} }
drawmenu_layer(); drawmenu();
} }
#endif #endif

View file

@ -58,7 +58,7 @@ void handle_wl(void) {
roundtrip(&state); roundtrip(&state);
match(); match();
draw_sf(&state); create_drawable(&state);
while (wl_display_dispatch(state.display) != -1) { while (wl_display_dispatch(state.display) != -1) {
} }

View file

@ -38,36 +38,36 @@ struct wl_buffer *create_buffer(struct state *state) {
* PLEASE submit a patch if you have an improvement. * PLEASE submit a patch if you have an improvement.
*/ */
int is_correct_modifier(struct state *state, char *modifier) { int is_correct_modifier(struct state *state, char *modifier) {
int altPress = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_ALT, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED); int alt_pressed = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_ALT, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);
int shiftPress = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_SHIFT, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED); int shift_pressed = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_SHIFT, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);
int ctrlPress = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_CTRL, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED); int ctrl_pressed = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_CTRL, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);
int logoPress = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_LOGO, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED); int logo_pressed = xkb_state_mod_name_is_active(state->xkb_state, XKB_MOD_NAME_LOGO, XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);
if (!strcmp(modifier, WL_CtrlShift) && shiftPress && ctrlPress) { if (!strcmp(modifier, WL_CtrlShift) && shift_pressed && ctrl_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlShiftSuper) && shiftPress && ctrlPress && logoPress) { } else if (!strcmp(modifier, WL_CtrlShiftSuper) && shift_pressed && ctrl_pressed && logo_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlSuper) && ctrlPress && logoPress) { } else if (!strcmp(modifier, WL_CtrlSuper) && ctrl_pressed && logo_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlAlt) && altPress && ctrlPress) { } else if (!strcmp(modifier, WL_CtrlAlt) && alt_pressed && ctrl_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlAltShift) && ctrlPress && altPress && shiftPress) { } else if (!strcmp(modifier, WL_CtrlAltShift) && ctrl_pressed && alt_pressed && shift_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlAltShiftSuper) && ctrlPress && altPress && shiftPress && logoPress) { } else if (!strcmp(modifier, WL_CtrlAltShiftSuper) && ctrl_pressed && alt_pressed && shift_pressed && logo_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_CtrlAltSuper) && ctrlPress && altPress && logoPress) { } else if (!strcmp(modifier, WL_CtrlAltSuper) && ctrl_pressed && alt_pressed && logo_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_AltShift) && altPress && shiftPress) { } else if (!strcmp(modifier, WL_AltShift) && alt_pressed && shift_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_Shift) && shiftPress) { } else if (!strcmp(modifier, WL_Shift) && shift_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_Ctrl) && ctrlPress) { } else if (!strcmp(modifier, WL_Ctrl) && ctrl_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_Alt) && altPress) { } else if (!strcmp(modifier, WL_Alt) && alt_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_Super) && logoPress) { } else if (!strcmp(modifier, WL_Super) && logo_pressed) {
return 0; return 0;
} else if (!strcmp(modifier, WL_None) && !altPress && !shiftPress && !ctrlPress && !logoPress) { } else if (!strcmp(modifier, WL_None) && !alt_pressed && !shift_pressed && !ctrl_pressed && !logo_pressed) {
return 0; return 0;
} }
@ -288,18 +288,18 @@ void buttonpress_wl(uint32_t button, double ex, double ey) {
yp = 1; yp = 1;
} }
click = ClickWindow; // clicking anywhere, we use this and override it if we clicked on something specific click = ClickWindow; // Clicking anywhere, we use this and override it if we clicked on something specific
// check click position and override the value of click // Check click position and override the value of click
if (yp && ex < x + sp.promptw + powerlineprompt ? sp.plw : 0) { // prompt if (yp && ex < x + sp.promptw + powerlineprompt ? sp.plw : 0) {
click = ClickPrompt; click = ClickPrompt;
} else if (yp && (ex > sp.mw - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) && !hidecaps && capsw) { // caps lock indicator } else if (yp && (ex > sp.mw - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) && !hidecaps && capsw) {
click = ClickCaps; click = ClickCaps;
} else if (yp && ex > sp.mw - modew - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) { // mode indicator } else if (yp && ex > sp.mw - modew - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) {
click = ClickMode; click = ClickMode;
} else if (yp && ex > sp.mw - modew - numberw - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) { // match count } else if (yp && ex > sp.mw - modew - numberw - capsw - 2 * sp.sp - 2 * borderwidth - menumarginh) {
click = ClickNumber; click = ClickNumber;
} else if (yp && !hideinput) { // input } else if (yp && !hideinput) {
w = (lines > 0 || !matches) ? sp.mw - x : sp.inputw; w = (lines > 0 || !matches) ? sp.mw - x : sp.inputw;
if ((lines <= 0 && ex >= 0 && ex <= x + w + sp.promptw + if ((lines <= 0 && ex >= 0 && ex <= x + w + sp.promptw +
@ -316,7 +316,7 @@ void buttonpress_wl(uint32_t button, double ex, double ey) {
} }
#endif #endif
// item click // It's an item click
if (lines > 0) { if (lines > 0) {
w = sp.mw - x; w = sp.mw - x;
@ -345,7 +345,7 @@ void buttonpress_wl(uint32_t button, double ex, double ey) {
#endif #endif
} }
} }
} else if (matches) { // a single line, meaning it could be arrows too, so we check that here } else if (matches) { // Single line
x += sp.inputw; x += sp.inputw;
w = larroww; w = larroww;
@ -355,22 +355,20 @@ void buttonpress_wl(uint32_t button, double ex, double ey) {
} }
} }
// right arrow
w = rarroww; w = rarroww;
x = sp.mw - w; x = sp.mw - w;
if (nextitem && ex >= x && ex <= x + w) { if (nextitem && ex >= x && ex <= x + w) {
click = ClickRArrow; click = ClickRArrow;
} }
} }
// go through mouse button array and run function
for (i = 0; i < LENGTH(wl_buttons); i++) { for (i = 0; i < LENGTH(wl_buttons); i++) {
if (sp.ignoreglobalmouse) break; if (sp.ignoreglobalmouse) break;
if ((click == wl_buttons[i].click || wl_buttons[i].click == ClickNone) && wl_buttons[i].func && wl_buttons[i].button == button) if ((click == wl_buttons[i].click || wl_buttons[i].click == ClickNone) && wl_buttons[i].func && wl_buttons[i].button == button)
wl_buttons[i].func(&wl_buttons[i].arg); wl_buttons[i].func(&wl_buttons[i].arg);
} }
// go through mouse config array and run function
for (i = 0; i < LENGTH(wl_cbuttons); i++) { for (i = 0; i < LENGTH(wl_cbuttons); i++) {
if (sp.ignoreconfmouse) break; if (sp.ignoreconfmouse) break;
if ((click == wl_cbuttons[i].click || wl_cbuttons[i].click == ClickNone) && wl_cbuttons[i].func && wl_cbuttons[i].button == button) if ((click == wl_cbuttons[i].click || wl_cbuttons[i].click == ClickNone) && wl_cbuttons[i].func && wl_cbuttons[i].button == button)
@ -462,7 +460,7 @@ void zero() {
// Nothing. // Nothing.
} }
void draw_sf(struct state *state) { void create_drawable(struct state *state) {
if (!allow_draw) { // No drawing if disabled if (!allow_draw) { // No drawing if disabled
return; return;
} }
@ -479,13 +477,7 @@ void draw_sf(struct state *state) {
} }
draw_create_surface_wl(draw, state->data, state->width, state->height); draw_create_surface_wl(draw, state->data, state->width, state->height);
drawmenu();
drawmenu_layer();
wl_surface_set_buffer_scale(state->surface, 1);
wl_surface_attach(state->surface, state->buffer, 0, 0);
wl_surface_damage(state->surface, 0, 0, state->width, state->height);
wl_surface_commit(state->surface);
} }
void global_handler(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) { void global_handler(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) {
@ -519,7 +511,14 @@ void surface_enter(void *data, struct wl_surface *surface, struct wl_output *wl_
state->output = wl_output_get_user_data(wl_output); state->output = wl_output_get_user_data(wl_output);
match(); match();
draw_sf(state); create_drawable(state);
}
void commit_drawable(struct state *state) {
wl_surface_set_buffer_scale(state->surface, 1);
wl_surface_attach(state->surface, state->buffer, 0, 0);
wl_surface_damage(state->surface, 0, 0, state->width, state->height);
wl_surface_commit(state->surface);
} }
int roundtrip(struct state *state) { int roundtrip(struct state *state) {
@ -577,7 +576,6 @@ void resizeclient_wl(struct state *state) {
int mh = sp.mh; int mh = sp.mh;
int ic = 0; int ic = 0;
// walk through all items
for (item = items; item && item->text; item++) for (item = items; item && item->text; item++)
ic++; ic++;
@ -611,10 +609,7 @@ void resizeclient_wl(struct state *state) {
draw_create_surface_wl(draw, state->data, state->width, state->height); draw_create_surface_wl(draw, state->data, state->width, state->height);
set_layer_size(state, state->width, state->height); set_layer_size(state, state->width, state->height);
wl_surface_set_buffer_scale(state->surface, 1); commit_drawable(state);
wl_surface_attach(state->surface, state->buffer, 0, 0);
wl_surface_damage(state->surface, 0, 0, state->width, state->height);
wl_surface_commit(state->surface);
} }
/* It is advised you call this function right before calling init_disp() /* It is advised you call this function right before calling init_disp()

View file

@ -124,7 +124,8 @@ static void output_geometry(void *data, struct wl_output *wl_output, int32_t x,
static void output_mode(void *data, struct wl_output *wl_output, uint32_t flags, int32_t width, int32_t height, int32_t refresh); static void output_mode(void *data, struct wl_output *wl_output, uint32_t flags, int32_t width, int32_t height, int32_t refresh);
static void layer_surface_configure(void *data, struct zwlr_layer_surface_v1 *surface, uint32_t serial, uint32_t width, uint32_t height); static void layer_surface_configure(void *data, struct zwlr_layer_surface_v1 *surface, uint32_t serial, uint32_t width, uint32_t height);
static void layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface); static void layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface);
static void draw_sf(struct state *state); static void create_drawable(struct state *state);
static void commit_drawable(struct state *state);
static void global_handler(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version); static void global_handler(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version);
static void seat_capabilities(void *data, struct wl_seat *seat, enum wl_seat_capability caps); static void seat_capabilities(void *data, struct wl_seat *seat, enum wl_seat_capability caps);
static void surface_enter(void *data, struct wl_surface *surface, struct wl_output *wl_output); static void surface_enter(void *data, struct wl_surface *surface, struct wl_output *wl_output);

View file

@ -131,6 +131,7 @@ struct sp {
int mode; // current mode int mode; // current mode
int allowkeys; // interpret a keypress as an insertion? int allowkeys; // interpret a keypress as an insertion?
int capslockstate; // caps lock state int capslockstate; // caps lock state
int isdrawing;
int inputw; // input width int inputw; // input width
int promptw; // prompt width int promptw; // prompt width
@ -609,6 +610,7 @@ void handle(void) {
set_mode(); set_mode();
init_appearance(); // init colorschemes by reading arrays init_appearance(); // init colorschemes by reading arrays
setupdisplay_x11(); // set up display and create window setupdisplay_x11(); // set up display and create window
eventloop_x11(); // function is a loop which checks X11 events and calls other functions accordingly eventloop_x11(); // function is a loop which checks X11 events and calls other functions accordingly
#endif #endif