The following commit has been merged in the master branch:
commit 314c9d187004aed02dc54debe00ab1cd9719834c
Author: Andrei Zavada <[email protected]>
Date:   Sun Jan 20 03:23:08 2013 +0200

    better handle SF page and selection context menu items

diff --git a/src/ui/sf/sf-channel.cc b/src/ui/sf/sf-channel.cc
index b19dc02..84f5ea5 100644
--- a/src/ui/sf/sf-channel.cc
+++ b/src/ui/sf/sf-channel.cc
@@ -510,6 +510,29 @@ update_power_check_menu_items()
 
 void
 aghui::SScoringFacility::SChannel::
+selectively_enable_page_menu_items( double x)
+{
+       double cpos = _p.time_at_click( x);
+
+       gtk_widget_set_visible( (GtkWidget*)_p.iSFPageHidden, _p.n_hidden > 0);
+       bool over_any =
+               not (_p.over_annotations = in_annotations( cpos)) . empty();
+       gtk_widget_set_visible( (GtkWidget*)_p.iiSFPageAnnotation, over_any);
+       gtk_widget_set_visible( (GtkWidget*)_p.iSFPageAnnotationSeparator, 
over_any);
+}
+
+void
+aghui::SScoringFacility::SChannel::
+selectively_enable_selection_menu_items()
+{
+       bool findable =
+               (selection_end_time - selection_start_time > .5);
+       gtk_widget_set_sensitive( (GtkWidget*)_p.iSFPageSelectionFindPattern, 
findable);
+}
+
+
+void
+aghui::SScoringFacility::SChannel::
 put_selection( size_t a, size_t e)
 {
        selection_start = a, selection_end = e;
diff --git a/src/ui/sf/sf-montage_cb.cc b/src/ui/sf/sf-montage_cb.cc
index 48a09be..2863bb3 100644
--- a/src/ui/sf/sf-montage_cb.cc
+++ b/src/ui/sf/sf-montage_cb.cc
@@ -157,15 +157,10 @@ daSFMontage_button_press_event_cb( GtkWidget *wid, 
GdkEventButton *event, gpoint
                                gtk_menu_popup( SF.iiSFPageHidden,
                                                NULL, NULL, NULL, NULL, 3, 
event->time);
                        else {
+                               Ch->selectively_enable_page_menu_items( 
event->x);
+                               Ch->update_channel_check_menu_items();
+                               Ch->update_power_check_menu_items();
                                double cpos = SF.time_at_click( event->x);
-                               // hide ineffective items
-                               
SF.using_channel->update_channel_check_menu_items();
-                               
SF.using_channel->update_power_check_menu_items();
-                               gtk_widget_set_visible( 
(GtkWidget*)SF.iSFPageHidden, SF.n_hidden > 0);
-                               bool over_any =
-                                       not (SF.over_annotations = 
Ch->in_annotations( cpos)) . empty();
-                               gtk_widget_set_visible( 
(GtkWidget*)SF.iiSFPageAnnotation, over_any);
-                               gtk_widget_set_visible( 
(GtkWidget*)SF.iSFPageAnnotationSeparator, over_any);
                                gtk_menu_popup( agh::alg::overlap(
                                                        
Ch->selection_start_time, Ch->selection_end_time,
                                                        cpos, cpos)
@@ -294,6 +289,7 @@ daSFMontage_button_release_event_cb( GtkWidget *wid, 
GdkEventButton *event, gpoi
                        SF.mode = aghui::SScoringFacility::TMode::scoring;
                        Ch->put_selection( Ch->selection_start, 
Ch->selection_end);
                        gtk_widget_queue_draw( wid);
+                       Ch->selectively_enable_selection_menu_items();
                        if ( fabs(SF.using_channel->marquee_mstart - 
SF.using_channel->marquee_mend) > 5 ) {
                                gtk_menu_popup( SF.iiSFPageSelection,
                                                NULL, NULL, NULL, NULL, 3, 
event->time);
@@ -874,8 +870,7 @@ iSFPageSelectionFindPattern_activate_cb( GtkMenuItem 
*menuitem, gpointer userdat
 {
        auto& SF = *(SScoringFacility*)userdata;
        auto& H = SF.using_channel;
-       if ( H->selection_end - H->selection_start > 5 )
-               H->mark_region_as_pattern();
+       H->mark_region_as_pattern();
 }
 
 void
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index 4c68b7d..9b0d62b 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -248,6 +248,8 @@ class SScoringFacility
                forward_list<confval::SValidator<double>>       config_keys_g;
                void update_channel_check_menu_items();
                void update_power_check_menu_items();
+               void selectively_enable_page_menu_items( double event_x);
+               void selectively_enable_selection_menu_items();
 
              // selection and marquee
                float   marquee_mstart,

-- 
Sleep experiment manager

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to