Rearrange hotkey groups into tabs
authorRicardo Mones <ricardo@mones.org>
Fri, 21 Dec 2018 19:05:52 +0000 (20:05 +0100)
committerRicardo Mones <ricardo@mones.org>
Fri, 21 Dec 2018 19:05:52 +0000 (20:05 +0100)
And fix the scrolling to top when clicking on a hotkey cell (thanks
George for reporting on ML).

clawsker

index 4ba365c..48c55b7 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -2188,23 +2188,21 @@ sub new_hotkeys_list {
 }
 
 sub new_hotkeys_page() {
-    my $swin = Gtk3::ScrolledWindow->new ();
-    my $vbox = Gtk3::VBox->new (FALSE, 5);
+    my $hkbook = Gtk3::Notebook->new;
+    $hkbook->set_tab_pos ('right');
     foreach my $gkey (sort keys %$HOTKEYS) {
         my $group = $HOTKEYS->{$gkey};
-        # group title
-        my $glabel = new_title ($gkey);
-        $glabel->set_padding (5, 1);
-        $vbox->pack_start ($glabel, FALSE, FALSE, 0);
-        # group key list
         my $keylist = new_hotkeys_list ($gkey, $group);
-        $vbox->pack_start ($keylist, FALSE, FALSE, 0);
+        # prepare scrolled window
+        my $swin = Gtk3::ScrolledWindow->new;
+        $swin->set_border_width (5);
+        $swin->set_shadow_type ('none');
+        $swin->set_policy ('automatic', 'automatic');
+        # add list of keys
+        $swin->add ($keylist);
+        $hkbook->append_page ($swin, new_label ($gkey));
     }
-    $swin->set_border_width (5);
-    $swin->set_shadow_type ('none');
-    $swin->set_policy ('automatic', 'always');
-    $swin->add_with_viewport ($vbox);
-    return $swin;
+    return $hkbook;
 }
 
 sub new_info_page() {