fortrangoingonforty/sniffly / b7226ca

Browse files

remove pulse animation, cleanup debug CSS frm toggle button

Authored by espadonne
SHA
b7226caf3b69d61b0a6e616ddc56e60c11f770b2
Parents
fab1682
Tree
c7f85b5

1 changed file

StatusFile+-
M src/gui/gtk_app.f90 29 14
src/gui/gtk_app.f90modified
@@ -87,6 +87,10 @@ module gtk_app
8787
   ! Open directory button pointer (for pulsing on empty tabs)
8888
   type(c_ptr), save :: open_dir_btn_ptr = c_null_ptr
8989
 
90
+  ! Toggle button pointers (for active state indicators)
91
+  type(c_ptr), save :: toggle_dotfiles_btn_ptr = c_null_ptr
92
+  logical, save :: dotfiles_button_active = .true.  ! Track button state (starts true since hidden files shown by default)
93
+
9094
   ! Drawing area pointer (for redrawing treemap)
9195
   type(c_ptr), save :: drawing_area_ptr = c_null_ptr
9296
 
@@ -356,8 +360,10 @@ contains
356360
 
357361
     ! Toggle Dotfiles button
358362
     toggle_dotfiles_btn = gtk_button_new()
363
+    toggle_dotfiles_btn_ptr = toggle_dotfiles_btn  ! Store reference for state updates
359364
     call gtk_button_set_icon_name(toggle_dotfiles_btn, "view-reveal-symbolic"//c_null_char)
360365
     call gtk_widget_set_tooltip_text(toggle_dotfiles_btn, "Toggle Hidden Files/Dotfiles"//c_null_char)
366
+    call gtk_widget_add_css_class(toggle_dotfiles_btn, "suggested-action"//c_null_char)  ! Start active (hidden files shown by default)
361367
     call g_signal_connect(toggle_dotfiles_btn, "clicked"//c_null_char, &
362368
                            c_funloc(on_toggle_dotfiles_clicked), c_null_ptr)
363369
     call gtk_box_append(toolbar, toggle_dotfiles_btn)
@@ -517,17 +523,8 @@ contains
517523
     type(c_ptr) :: css_provider, display
518524
     character(len=:), allocatable :: css_data
519525
 
520
-    ! CSS with pulsing animation for suggested-action class (empty tabs)
521
-    ! and card border styling to match active tab appearance
526
+    ! CSS for canvas card border styling
522527
     css_data = &
523
-      "@keyframes pulse { " // &
524
-      "0% { opacity: 1.0; } " // &
525
-      "50% { opacity: 0.5; } " // &
526
-      "100% { opacity: 1.0; } " // &
527
-      "} " // &
528
-      ".suggested-action { " // &
529
-      "animation: pulse 1.5s ease-in-out infinite; " // &
530
-      "} " // &
531528
       ".canvas-card { " // &
532529
       "background-color: rgba(250, 250, 250, 1.0); " // &
533530
       "border: 1px solid rgba(179, 179, 179, 1.0); " // &
@@ -543,10 +540,10 @@ contains
543540
     ! Get default display
544541
     display = gdk_display_get_default()
545542
 
546
-    ! Add CSS provider to display (600 = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION)
547
-    call gtk_style_context_add_provider_for_display(display, css_provider, 600_c_int)
543
+    ! Add CSS provider to display (800 = GTK_STYLE_PROVIDER_PRIORITY_USER)
544
+    call gtk_style_context_add_provider_for_display(display, css_provider, 800_c_int)
548545
 
549
-    print *, "Custom CSS loaded (pulsing animation + canvas card styling)"
546
+    print *, "Custom CSS loaded (canvas card styling)"
550547
   end subroutine load_custom_css
551548
 
552549
   ! Callback when Open Directory button is clicked
@@ -1362,6 +1359,7 @@ contains
13621359
   ! Callback when Toggle Dotfiles button is clicked
13631360
   subroutine on_toggle_dotfiles_clicked(button, user_data) bind(c)
13641361
     use treemap_renderer, only: toggle_hidden_files
1362
+    use gtk, only: gtk_widget_add_css_class, gtk_widget_remove_css_class
13651363
     type(c_ptr), value :: button, user_data
13661364
     type(tab_state), pointer :: tab
13671365
 
@@ -1372,8 +1370,25 @@ contains
13721370
       return
13731371
     end if
13741372
 
1373
+    ! Toggle the hidden files state in renderer
13751374
     call toggle_hidden_files()
1376
-    call sniffly_update_status("Toggled hidden files visibility - rescanning...")
1375
+
1376
+    ! Toggle our button state tracker
1377
+    dotfiles_button_active = .not. dotfiles_button_active
1378
+
1379
+    print *, "DEBUG: dotfiles_button_active =", dotfiles_button_active
1380
+    print *, "DEBUG: toggle_dotfiles_btn_ptr associated?", c_associated(toggle_dotfiles_btn_ptr)
1381
+
1382
+    ! Update button visual state - toggle GTK's built-in suggested-action class
1383
+    if (dotfiles_button_active) then
1384
+      print *, "DEBUG: Adding 'suggested-action' CSS class"
1385
+      call gtk_widget_add_css_class(toggle_dotfiles_btn_ptr, "suggested-action"//c_null_char)
1386
+      call sniffly_update_status("Showing hidden files - rescanning...")
1387
+    else
1388
+      print *, "DEBUG: Removing 'suggested-action' CSS class"
1389
+      call gtk_widget_remove_css_class(toggle_dotfiles_btn_ptr, "suggested-action"//c_null_char)
1390
+      call sniffly_update_status("Hiding hidden files - rescanning...")
1391
+    end if
13771392
 
13781393
     ! Trigger rescan to apply the filter
13791394
     if (len_trim(tab%scan_path) > 0) then