]> git.donarmstrong.com Git - xournal.git/commitdiff
fix: don't lose tracking of pointer events when exiting canvas
authorauroux <auroux>
Mon, 30 Nov 2009 03:06:23 +0000 (03:06 +0000)
committerauroux <auroux>
Mon, 30 Nov 2009 03:06:23 +0000 (03:06 +0000)
ChangeLog
src/TODO
src/xo-callbacks.c
src/xournal.h

index fcc818ea09b509efbbf9186994045c53acb13e82..b6dfa1c0eccd1af63c13b08ff874c66bb97b6b1f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 This version:
   - win32 portability code (contributed by Dirk Gerrits)
-  - fix a bug in PDF export code on 64-bit systems (patch by Robert Buchholz)
+  - fix bug in PDF export code on 64-bit systems (patch by Robert Buchholz)
+  - fix hand tool bug when exiting canvas (#2905711)
 
 Version 0.4.5 (Oct 2, 2009):
   - bugfixes for GTK+ 2.16/2.17 issues with xinput events
index 64679cedd5e2c51395a76793f0da486df993e628..cf116c09132d765fd56b30bf7a04cf989a63a607 100644 (file)
--- a/src/TODO
+++ b/src/TODO
@@ -54,6 +54,11 @@ PATCHES TO INCORPORATE:
 
 ** insert images patch (Victor Saase) #2890925
 
+- customize paper ruling (Gautam Iyer e-mail Nov 28 2009, will update with
+   glade dialog box)
+
+
+
 - PDF bg memory usage throttling / delete oldest pdf backgrounds
 - replace ttsubset by something more modern? (eg. from cairo ?)
 - auto-hide patch from ~/prog/src/xournal-autohide/ ?
index cf887c7bb0b682686c3b9410602a81cf8ce5a6c1..0e8e02bdc47248619def955e9cf89713cc9c575c 100644 (file)
@@ -2562,6 +2562,7 @@ on_canvas_enter_notify_event           (GtkWidget       *widget,
       dev = GDK_DEVICE(dev_list->data);
       gdk_device_set_mode(dev, GDK_MODE_SCREEN);
     }
+    ui.is_corestroke = ui.saved_is_corestroke;
   }
   return FALSE;
 }
@@ -2584,6 +2585,8 @@ on_canvas_leave_notify_event           (GtkWidget       *widget,
       dev = GDK_DEVICE(dev_list->data);
       gdk_device_set_mode(dev, GDK_MODE_DISABLED);
     }
+    ui.saved_is_corestroke = ui.is_corestroke;
+    ui.is_corestroke = TRUE;
   }
   return FALSE;
 }
@@ -2714,6 +2717,9 @@ on_canvas_motion_notify_event          (GtkWidget       *widget,
     else if (ui.cur_item_type == ITEM_RESIZESEL) {
       finalize_resizesel();
     }
+    else if (ui.cur_item_type == ITEM_HAND) {
+      ui.cur_item_type = ITEM_NONE;
+    }
     switch_mapping(0);
     return FALSE;
   }
index 15906cdf6a257fe4298e94b6bebc60e706ea5492..7c7d4c3fa40b1979f1f9c68377b993704dda668b 100644 (file)
@@ -252,6 +252,7 @@ typedef struct UIData {
   gboolean pressure_sensitivity; // use pen pressure to control stroke width?
   double width_minimum_multiplier, width_maximum_multiplier; // calibration for pressure sensitivity
   gboolean is_corestroke; // this stroke is painted with core pointer
+  gboolean saved_is_corestroke;
   GdkDevice *stroke_device; // who's painting this stroke
   int screen_width, screen_height; // initial screen size, for XInput events
   double hand_refpt[2];