Skip to content

Commit 3563dcc

Browse files
committed
polish toolkitgroupview again
1 parent b8676bc commit 3563dcc

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project('nip4', 'c',
22
# ie. a major after nip2 8.9 for workspace save file versioning
3-
version: '9.0.8',
3+
version: '9.0.8-1',
44
license: 'GPL',
55
meson_version: '>=0.64',
66
default_options: [

src/gtk/toolkitgroupview.ui

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
<object class="GtkScrolledWindow" id="scrolled_window">
7070
<property name="hexpand">false</property>
7171
<property name="vexpand">true</property>
72+
<property name="vscrollbar-policy">external</property>
7273
<property name="propagate-natural-width">true</property>
7374

7475
</object>

src/toolkitgroupview.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -455,13 +455,17 @@ toolkitgroupview_browse_clicked(GtkWidget *button,
455455

456456
gtk_stack_set_visible_child_name(GTK_STACK(kitgview->stack), name);
457457
gtk_stack_remove(GTK_STACK(kitgview->stack), last_page);
458-
kitgview->pinned = FALSE;
458+
kitgview->pin = NULL;
459459
}
460460
else {
461461
if (node->kit ||
462462
(node->toolitem && node->toolitem->is_pullright)) {
463+
// go right ... make sure we clear the pin widget first
464+
if (kitgview->pin)
465+
gtk_check_button_set_active(GTK_CHECK_BUTTON(kitgview->pin),
466+
FALSE);
467+
kitgview->pin = NULL;
463468
toolkitgroupview_build_browse_page(kitgview, node);
464-
kitgview->pinned = FALSE;
465469
}
466470

467471
// activate after moving to the new page so listeners can get the new
@@ -470,13 +474,6 @@ toolkitgroupview_browse_clicked(GtkWidget *button,
470474
}
471475
}
472476

473-
static void
474-
toolkitgroupview_pin_togggled(GtkCheckButton *check_button,
475-
Toolkitgroupview *kitgview)
476-
{
477-
kitgview->pinned = gtk_check_button_get_active(check_button);
478-
}
479-
480477
static void
481478
toolkitgroupview_setup_browse_item(GtkListItemFactory *factory,
482479
GtkListItem *item, Toolkitgroupview *kitgview)
@@ -510,8 +507,6 @@ toolkitgroupview_setup_browse_item(GtkListItemFactory *factory,
510507
gtk_box_append(GTK_BOX(box), right);
511508

512509
GtkWidget *pin = gtk_check_button_new();
513-
g_signal_connect(pin, "toggled",
514-
G_CALLBACK(toolkitgroupview_pin_togggled), kitgview);
515510
set_tooltip(pin, "Pin menu in place");
516511
gtk_box_append(GTK_BOX(enclosing), pin);
517512

@@ -546,6 +541,9 @@ toolkitgroupview_bind_browse_item(GtkListItemFactory *factory,
546541
gtk_widget_set_visible(pin, TRUE);
547542
gtk_label_set_xalign(GTK_LABEL(label), 0.5);
548543
g_object_set_qdata(G_OBJECT(button), node_quark, parent);
544+
545+
// remember the widget so we can test and set the state
546+
kitgview->pin = pin;
549547
}
550548
else {
551549
gtk_label_set_xalign(GTK_LABEL(label), 0.0);
@@ -591,6 +589,9 @@ toolkitgroupview_build_browse_page(Toolkitgroupview *kitgview, Node *this)
591589
const char *name = node_get_name(this);
592590

593591
GtkWidget *scrolled_window = gtk_scrolled_window_new();
592+
// no scrollbars ... they obstruct useful widgets
593+
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
594+
GTK_POLICY_EXTERNAL, GTK_POLICY_EXTERNAL);
594595
gtk_stack_add_named(GTK_STACK(kitgview->stack), scrolled_window, name);
595596
kitgview->page_names = g_slist_append(kitgview->page_names, g_strdup(name));
596597

@@ -1030,7 +1031,8 @@ toolkitgroupview_new(void)
10301031
void
10311032
toolkitgroupview_home(Toolkitgroupview *kitgview)
10321033
{
1033-
if (!kitgview->pinned) {
1034+
if (!kitgview->pin ||
1035+
!gtk_check_button_get_active(GTK_CHECK_BUTTON(kitgview->pin))) {
10341036
GtkWidget *stack = kitgview->stack;
10351037
GtkWidget *root_page = gtk_widget_get_first_child(stack);
10361038

src/toolkitgroupview.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ struct _Toolkitgroupview {
6666
GtkWidget *scrolled_window;
6767
GtkWidget *list_view;
6868

69-
gboolean pinned;
69+
// the last pin widget we bound
70+
GtkWidget *pin;
7071
};
7172

7273
typedef struct _ToolkitgroupviewClass {

0 commit comments

Comments
 (0)