]> git.mdlowis.com Git - proto/labwc.git/commitdiff
rcxml: set default mousebind
authorJohan Malm <jgm323@gmail.com>
Mon, 6 Sep 2021 21:02:02 +0000 (22:02 +0100)
committerJohan Malm <jgm323@gmail.com>
Mon, 6 Sep 2021 21:02:02 +0000 (22:02 +0100)
...if none specified by the user in ~/.config/labwc/rc.xml

src/config/rcxml.c

index d21be686ca6484cbd5fe409f38b797d79211854b..4ab7caea238f494dedc0cd7506174e2736616eaa 100644 (file)
@@ -375,6 +375,27 @@ load_default_key_bindings(void)
        bind("A-Down", "MoveToEdge", "down");
 }
 
+static struct {
+       const char *context, *button, *event, *action, *command;
+} mouse_combos[] = {
+       { "TitleBar", "Left", "DoubleClick", "ToggleMaximize", NULL },
+       { NULL, NULL, NULL, NULL, NULL },
+};
+
+static void
+load_default_mouse_bindings(void)
+{
+       for (int i = 0; mouse_combos[i].context; i++) {
+               struct mousebind *m = mousebind_create(mouse_combos[i].context);
+               m->button = mousebind_button_from_str(mouse_combos[i].button);
+               m->mouse_event = mousebind_event_from_str(mouse_combos[i].event);
+               m->action = strdup(mouse_combos[i].action);
+               if (mouse_combos[i].command) {
+                       m->command = strdup(mouse_combos[i].command);
+               }
+       }
+}
+
 static void
 post_processing(void)
 {
@@ -382,6 +403,10 @@ post_processing(void)
                wlr_log(WLR_INFO, "load default key bindings");
                load_default_key_bindings();
        }
+       if (!wl_list_length(&rc.mousebinds)) {
+               wlr_log(WLR_INFO, "load default mouse bindings");
+               load_default_mouse_bindings();
+       }
 
        if (!rc.font_name_activewindow) {
                rc.font_name_activewindow = strdup("sans");