gnucash maint: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Mon Oct 29 14:27:30 EDT 2018


Updated	 via  https://github.com/Gnucash/gnucash/commit/f6fb1101 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/917aadf9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ab1070eb (commit)
	from  https://github.com/Gnucash/gnucash/commit/dddc2788 (commit)



commit f6fb1101bdacda22510a84f1b75c4f897666ecff
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 29 11:27:16 2018 -0700

    Add bcrypt.lib to engine build flags on Windows < 10.
    
    Seems not to be required on Win10.

diff --git a/libgnucash/engine/CMakeLists.txt b/libgnucash/engine/CMakeLists.txt
index 638d204..2da9b05 100644
--- a/libgnucash/engine/CMakeLists.txt
+++ b/libgnucash/engine/CMakeLists.txt
@@ -231,8 +231,13 @@ add_library (gncmod-engine
 
 # Add dependency on swig-runtime.h and iso-4217-currencies.c
 add_dependencies (gncmod-engine swig-runtime-h iso-4217-c)
+if (WIN32 AND ${CMAKE_HOST_SYSTEM_VERSION} VERSION_LESS "10.0")
+  set(BCRYPT "bcrypt.lib")
+else()
+  set(BCRYPT "")
+endif()
 
-target_link_libraries(gncmod-engine gnc-core-utils gnc-module ${Boost_DATE_TIME_LIBRARIES}  ${Boost_REGEX_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GUILE_LDFLAGS})
+target_link_libraries(gncmod-engine gnc-core-utils gnc-module ${Boost_DATE_TIME_LIBRARIES}  ${Boost_REGEX_LIBRARIES} ${BCRYPT} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GUILE_LDFLAGS})
 
 target_compile_definitions (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
 

commit 917aadf9509165b7530e359f8dfe251ab0e9408a
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 27 12:44:38 2018 -0700

    Bug 796875 - Unable to use arrow keys to advance past...
    
    pre-filled text in register, and
    Bug 796883 - Register is misinterpreting CTRL ALT keys
    This also reverts commit bfa6cd52e829cb50d8ad401528b7ca7daae0b26f.

diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 7b9dc01..25e6c7d 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -891,8 +891,6 @@ gnucash_sheet_modify_current_cell (GnucashSheet *sheet, const gchar *new_text)
 
     gtk_editable_set_position (editable, cursor_position);
     gtk_editable_select_region(editable, start_sel, end_sel);
-    sheet->start_sel = start_sel;
-    sheet->end_sel = end_sel;
 
     return retval;
 }
@@ -1151,8 +1149,6 @@ gnucash_sheet_delete_cb (GtkWidget *widget,
 
     if (start_sel != end_sel)
         gtk_editable_select_region (editable, start_sel, end_sel);
-    sheet->start_sel = start_sel;
-    sheet->end_sel = end_sel;
 
     g_string_free (new_text_gs, TRUE);
 }
@@ -1680,8 +1676,6 @@ gnucash_sheet_direct_event(GnucashSheet *sheet, GdkEvent *event)
     if ((new_start != start_sel) || (new_end != end_sel))
     {
         gtk_editable_select_region(editable, new_start, new_end);
-        sheet->start_sel = new_start;
-        sheet->end_sel = new_end;
 //        changed = TRUE;
     }
 
@@ -1728,6 +1722,8 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
         case GDK_KEY_Return:
         case GDK_KEY_KP_Enter:
             g_signal_emit_by_name(sheet->reg, "activate_cursor");
+	    /* Clear the saved selection. */
+	    sheet->end_sel = sheet->start_sel;
             return TRUE;
             break;
         case GDK_KEY_Tab:
@@ -1791,6 +1787,8 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
                 if (gnc_table_confirm_change (table,
                                               cur_virt_loc))
                     gnc_item_edit_show_popup (item_edit);
+		/* Clear the saved selection for the new cell. */
+		sheet->end_sel = sheet->start_sel;
 
                 return TRUE;
             }
@@ -1807,10 +1805,21 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
         case GDK_KEY_Alt_R:
             pass_on = TRUE;
             break;
+        case GDK_KEY_KP_Right:
+        case GDK_KEY_Right:
+        case GDK_KEY_KP_Left:
+        case GDK_KEY_Left:
+	    /* Clear the saved selection, we're not using it. */
+	    sheet->end_sel = sheet->start_sel;
+	    pass_on = TRUE;
+	    break;
         default:
             if (gnucash_sheet_clipboard_event(sheet, event))
+	    {
+		/* Clear the saved selection. */
+		sheet->end_sel = sheet->start_sel;
                 return TRUE;
-
+	    }
             pass_on = TRUE;
             break;
         }
@@ -1824,13 +1833,18 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
 
         // If sheet is readonly, entry is not realized
         if (gtk_widget_get_realized (GTK_WIDGET(editable)))
+	{
             result = gtk_widget_event (GTK_WIDGET(editable), (GdkEvent*)event);
         /* Restore the stored selection in case it was eaten by the input
          * module.
          */
-        if (sheet->start_sel != sheet->end_sel)
-            gtk_editable_select_region(editable, sheet->start_sel,
-                                       sheet->end_sel);
+	    if (sheet->start_sel != sheet->end_sel)
+	    {
+		gtk_editable_select_region(editable, sheet->start_sel,
+					   sheet->end_sel);
+		sheet->end_sel = sheet->start_sel;
+	    }
+	}
         return result;
     }
 
@@ -1841,6 +1855,8 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
     if (abort_move)
         return TRUE;
 
+    /* Clear the saved selection for the new cell. */
+    sheet->end_sel = sheet->start_sel;
     gnucash_sheet_cursor_move (sheet, new_virt_loc);
 
     /* return true because we handled the key press */
@@ -1852,6 +1868,7 @@ gnucash_sheet_key_press_event (GtkWidget *widget, GdkEventKey *event)
 {
     GnucashSheet *sheet;
     GtkEditable *editable = NULL;
+    int start_sel = 0, end_sel = 0;
 
     g_return_val_if_fail(widget != NULL, TRUE);
     g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
@@ -1880,6 +1897,8 @@ gnucash_sheet_key_press_event (GtkWidget *widget, GdkEventKey *event)
         sheet->keyval_state = (event->keyval == GDK_KEY_KP_Decimal) ? GDK_KEY_KP_Decimal : 0;
     }
 
+    gtk_editable_get_selection_bounds (editable, &start_sel, &end_sel);
+
     if (gtk_im_context_filter_keypress (sheet->im_context, event))
     {
         sheet->need_im_reset = TRUE;
@@ -1940,7 +1959,7 @@ gnucash_sheet_commit_cb (GtkIMContext *context, const gchar *str,
                          GnucashSheet *sheet)
 {
     GtkEditable *editable;
-    gint tmp_pos, start_sel, end_sel;
+    gint tmp_pos, sel_start, sel_end;
 
     g_return_if_fail(strlen(str) > 0);
     g_return_if_fail(sheet->editing == TRUE);
@@ -1982,9 +2001,9 @@ gnucash_sheet_commit_cb (GtkIMContext *context, const gchar *str,
                                   sheet->delete_signal);
     }
 
-    if (gtk_editable_get_selection_bounds (editable, &start_sel, &end_sel))
+    if (gtk_editable_get_selection_bounds (editable, &sel_start, &sel_end))
     {
-        if (start_sel != end_sel)
+        if (sel_start != sel_end)
         {
             sheet->preedit_selection_length = 0;
             gtk_editable_delete_selection (editable);
@@ -1998,12 +2017,10 @@ gnucash_sheet_commit_cb (GtkIMContext *context, const gchar *str,
 
     /* insert_cb may have changed the selection, but gtk_editable_set_position
        (erroneously?) clears it.  If a selection is set, preserve it. */
-    gtk_editable_get_selection_bounds (editable, &start_sel, &end_sel);
+    gtk_editable_get_selection_bounds (editable, &sel_start, &sel_end);
     gtk_editable_set_position (editable, tmp_pos);
-    if (start_sel != end_sel)
-        gtk_editable_select_region (editable, start_sel, end_sel);
-    sheet->start_sel = start_sel;
-    sheet->end_sel = end_sel;
+    if (sel_start != sel_end)
+        gtk_editable_select_region (editable, sel_start, sel_end);
 
     gnucash_sheet_im_context_reset_flags(sheet);
 }

commit ab1070ebca23bb5a7b400f19a7c2b05d533e5fa3
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Oct 27 16:19:40 2018 -0700

    Adjust no-register CXXFlag.
    
    To account for different flag on some versions of Clang.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e01c22b..abc4519 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -542,10 +542,20 @@ endif (Boost_FOUND)
 # Compiler flags
 
 include (CheckCCompilerFlag)
+include (CheckCXXCompilerFlag)
 check_c_compiler_flag(-Wstringop-truncation have_stringop_truncation)
 if (have_stringop_truncation)
     set(HAVE_STRINGOP_TRUNCATION TRUE)
 endif()
+check_cxx_compiler_flag(-Wno-register have_no_register)
+if (have_no_register)
+  set(REGISTER_CXXFLAG -Wno-register)
+else()
+  check_cxx_compiler_flag(-Wno-deprecated-register have_no_dep_register)
+  if (have_no_dep_register)
+    set(REGISTER_CXXFLAG -Wno-deprecated-register)
+  endif()
+endif()
 add_definitions(-D_GNU_SOURCE)
 
 if (APPLE)
@@ -576,7 +586,7 @@ if (UNIX)
   set( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-unused ${CMAKE_C_FLAGS}")
   set( CMAKE_C_FLAGS "-Wno-deprecated-declarations -std=gnu11 -Wno-error=parentheses ${CMAKE_C_FLAGS}")
   set( CMAKE_CXX_FLAGS "-Werror -Wall -Wmissing-declarations -Wno-unused -Wno-error=parentheses ${CMAKE_CXX_FLAGS}")
-  set( CMAKE_CXX_FLAGS "-Wno-deprecated-declarations -Wno-register ${CMAKE_CXX_FLAGS}")
+  set( CMAKE_CXX_FLAGS "-Wno-deprecated-declarations ${REGISTER_CXXFLAG} ${CMAKE_CXX_FLAGS}")
   set( CMAKE_C_FLAGS_RELEASE "-O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${CMAKE_C_FLAGS}")
 endif (UNIX)
 if (MINGW)



Summary of changes:
 CMakeLists.txt                                  | 12 +++++-
 gnucash/register/register-gnome/gnucash-sheet.c | 53 ++++++++++++++++---------
 libgnucash/engine/CMakeLists.txt                |  7 +++-
 3 files changed, 52 insertions(+), 20 deletions(-)



More information about the gnucash-changes mailing list