Skip to content

Commit 253667c

Browse files
BitterlyIronicjohanmalm
authored andcommitted
Add support for setting cursor size
1 parent ee9a2b4 commit 253667c

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

main.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ static GtkWidget *openbox_theme_name;
1313
static GtkWidget *gtk_theme_name;
1414
static GtkWidget *icon_theme_name;
1515
static GtkWidget *cursor_theme_name;
16+
static GtkWidget *cursor_size;
1617
static GtkWidget *natural_scroll;
1718

1819
static struct themes openbox_themes = { 0 };
@@ -69,6 +70,14 @@ environment_set(const char *key, const char *value)
6970
rename(bufname, filename);
7071
}
7172

73+
static void
74+
environment_set_num(const char *key, int value) {
75+
char buffer[255];
76+
snprintf(buffer, 255, "%d", value);
77+
78+
environment_set(key, buffer);
79+
}
80+
7281
static void
7382
set_value(GSettings *settings, const char *key, const char *value)
7483
{
@@ -79,8 +88,15 @@ set_value(GSettings *settings, const char *key, const char *value)
7988
g_settings_set_value(settings, key, g_variant_new("s", value));
8089
}
8190

91+
static void
92+
set_value_num(GSettings *settings, const char *key, int value)
93+
{
94+
g_settings_set_value(settings, key, g_variant_new("i", value));
95+
}
96+
8297
#define COMBO_TEXT(w) gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(w))
8398
#define SPIN_BUTTON_VAL(w) gtk_spin_button_get_value(GTK_SPIN_BUTTON(w))
99+
#define SPIN_BUTTON_VAL_INT(w) (int)SPIN_BUTTON_VAL(w)
84100

85101
static void
86102
update(GtkWidget *widget, gpointer data)
@@ -93,12 +109,13 @@ update(GtkWidget *widget, gpointer data)
93109

94110
/* gsettings */
95111
set_value(settings, "cursor-theme", COMBO_TEXT(cursor_theme_name));
112+
set_value_num(settings, "cursor-size", SPIN_BUTTON_VAL_INT(cursor_size));
96113
set_value(settings, "gtk-theme", COMBO_TEXT(gtk_theme_name));
97114
set_value(settings, "icon-theme", COMBO_TEXT(icon_theme_name));
98115

99116
/* ~/.config/labwc/environment */
100117
environment_set("XCURSOR_THEME", COMBO_TEXT(cursor_theme_name));
101-
118+
environment_set_num("XCURSOR_SIZE", SPIN_BUTTON_VAL_INT(cursor_size));
102119

103120
if (!g_strcmp0(COMBO_TEXT(openbox_theme_name), "GTK")) {
104121
spawn_sync("labwc-gtktheme.py");
@@ -210,6 +227,15 @@ activate(GtkApplication *app, gpointer user_data)
210227
gtk_combo_box_set_active(GTK_COMBO_BOX(cursor_theme_name), active);
211228
gtk_grid_attach(GTK_GRID(grid),cursor_theme_name, 1, row++, 1, 1);
212229

230+
/* cursor size spinbutton */
231+
widget = gtk_label_new("cursor size");
232+
gtk_widget_set_halign(widget, GTK_ALIGN_START);
233+
gtk_grid_attach(GTK_GRID(grid), widget, 0, row, 1, 1);
234+
GtkAdjustment *cursor_adjustment = gtk_adjustment_new(0, 0, 512, 1, 2, 0);
235+
cursor_size = gtk_spin_button_new(GTK_ADJUSTMENT(cursor_adjustment), 1, 0);
236+
gtk_spin_button_set_value(GTK_SPIN_BUTTON(cursor_size), g_settings_get_int(settings, "cursor-size"));
237+
gtk_grid_attach(GTK_GRID(grid), cursor_size, 1, row++, 1, 1);
238+
213239
/* natural scroll combobox */
214240
widget = gtk_label_new("natural scroll");
215241
gtk_widget_set_halign(widget, GTK_ALIGN_START);

0 commit comments

Comments
 (0)