[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-cvs: branch: master updated (1.1.1.20070708-1-gff036cb)



The branch, master has been updated
       via  ff036cbb89336c48106b064af499b6e841c7d8a5 (commit)
      from  e978b9098c7567ad3b9c834a5e4914de3bc039ec (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 gschem/src/i_callbacks.c |   49 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)


=================
 Commit Messages
=================

commit ff036cbb89336c48106b064af499b6e841c7d8a5
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Mon Jul 9 18:36:36 2007 +0200

    Disable rotating while copying, & fix hitting rotate hotkey/menu while moving.
    
    Rotating while copying is still not supported, so disable it.
    Fix behaviour when hitting the rotate hotkey, or select the edit->rotate menu
    while moving.
    Previously the move action was cancelled and then the selection was rotated.
    Now, the objects being moved are rotated, and the move action continues.

:100644 100644 cc3477b... 266e74c... M	gschem/src/i_callbacks.c

=========
 Changes
=========

commit ff036cbb89336c48106b064af499b6e841c7d8a5
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Mon Jul 9 18:36:36 2007 +0200

    Disable rotating while copying, & fix hitting rotate hotkey/menu while moving.
    
    Rotating while copying is still not supported, so disable it.
    Fix behaviour when hitting the rotate hotkey, or select the edit->rotate menu
    while moving.
    Previously the move action was cancelled and then the selection was rotated.
    Now, the objects being moved are rotated, and the move action continues.

diff --git a/gschem/src/i_callbacks.c b/gschem/src/i_callbacks.c
index cc3477b..266e74c 100644
--- a/gschem/src/i_callbacks.c
+++ b/gschem/src/i_callbacks.c
@@ -800,6 +800,30 @@ DEFINE_I_CALLBACK(edit_rotate_90)
 
   exit_if_null(w_current);
 
+  /* Rotating inside a copy action is still not
+     supported. In these cases, do nothing */
+  if ( (w_current->inside_action) &&
+       ((w_current->event_state == ENDCOPY) ||
+        (w_current->event_state == ENDMCOPY)) )
+    {
+      return;
+    }
+
+  /* If inside a move action, send a button 3 released, so rotating 
+     will be handled by x_event.c */
+  if ( (w_current->inside_action) &&
+       ((w_current->event_state == ENDMOVE)) ) 
+    {
+      GdkEvent* event;
+      
+      event = gdk_event_new(GDK_BUTTON_RELEASE);
+      ((GdkEventButton*) event)->button = 2;
+      x_event_button_released (NULL, (GdkEventButton *) event, w_current);
+      gdk_event_free(event);
+
+      return;      
+    }
+  
   i_set_state(w_current, ENDROTATEP);
   i_update_middle_button(w_current, i_callback_edit_rotate_90, _("Rotate"));
 }
@@ -817,6 +841,31 @@ DEFINE_I_CALLBACK(edit_rotate_90_hotkey)
   int w_x, w_y;
 
   exit_if_null(w_current);
+
+  /* Rotating inside a copy action is still not
+     supported. In these cases, do nothing */
+  if ( (w_current->inside_action) &&
+       ((w_current->event_state == ENDCOPY) ||
+        (w_current->event_state == ENDMCOPY)) )
+    {
+      return;
+    }
+
+  /* If inside a move action, send a button 3 released, so rotating 
+     will be handled by x_event.c */
+  if ( (w_current->inside_action) &&
+       ((w_current->event_state == ENDMOVE)) ) 
+    {
+      GdkEvent* event;
+      
+      event = gdk_event_new(GDK_BUTTON_RELEASE);
+      ((GdkEventButton*) event)->button = 2;
+      x_event_button_released (NULL, (GdkEventButton *) event, w_current);
+      gdk_event_free(event);
+
+      return;      
+    }
+  
   o_redraw_cleanstates(w_current);	
 
   object_list = w_current->page_current->selection_list;    




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs