[gedit] Remove GeditViewCentering



commit 8710e89d847b0bfc65d7833255090e304cf7c890
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Sep 11 10:13:29 2019 +0200

    Remove GeditViewCentering
    
    Centering the text view was done to have a more distraction-free UX. But
    it was not well integrated into gedit: it was enabled only on fullscreen
    AND if the right margin was set, without the possibility to disable it
    in that case. For users it's difficult to know what's going on, whether
    the right margin is set the text editor behaves differently for an
    unrelated action. Users have asked to have more options to
    enable/disable the feature.
    
    To re-enable the feature to center the view, it should be implemented in
    a better way:
    1) Wrap GeditView into a GeditViewCentering container only when needing
    to center the text. In other words, if the text is not centered, then
    GeditViewCentering should not be used at all. So, the
    GeditView/GtkScrolledWindow should be dynamically added/removed from the
    GeditViewCentering.
    2) In the preferences dialog, provide options to enable/disable the
    feature for the normal/fullscreen modes.
    
    It's also a pragmatic decision to simplify the gedit code, because there
    are not enough developers, and too many bugs. Do you prefer a rock-solid
    text editor? Or a text editor with some shiny and non-essential features
    that complexifies the code, at the expense of more bugs? The gedit core
    should have a much smaller code size, with all the essential features
    implemented in libraries.
    
    -----
    
    diff details: it's GeditViewCentering that created the
    GtkScrolledWindow, so in the *.ui file we need to create the
    GtkScrolledWindow instead of GeditViewCentering.

 docs/reference/meson.build             |   1 -
 gedit/gedit-view-centering.c           | 495 ---------------------------------
 gedit/gedit-view-centering.h           |  67 -----
 gedit/gedit-view-frame.c               |  13 +-
 gedit/gedit-view-frame.h               |   4 -
 gedit/gedit-window.c                   |  21 --
 gedit/meson.build                      |   2 -
 gedit/resources/ui/gedit-view-frame.ui |   2 +-
 8 files changed, 2 insertions(+), 603 deletions(-)
---
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index 9cc2d1e5d..af40166f2 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -66,7 +66,6 @@ libgedit_reference_ignored_h = [
   'gedit-small-button.h',
   'gedit-status-menu-button.h',
   'gedit-tab-label.h',
-  'gedit-view-centering.h',
   'gedit-view-frame.h',
   'gedit-window-private.h',
 ]
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c
index 67c067a41..c7962e92d 100644
--- a/gedit/gedit-view-frame.c
+++ b/gedit/gedit-view-frame.c
@@ -3,7 +3,7 @@
  * This file is part of gedit
  *
  * Copyright (C) 2010 - Ignacio Casal Quinteiro
- * Copyright (C) 2013 - Sébastien Wilmet
+ * Copyright (C) 2013, 2019 - Sébastien Wilmet
  *
  * gedit is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,7 +28,6 @@
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
-#include "gedit-view-centering.h"
 #include "gedit-debug.h"
 #include "gedit-utils.h"
 #include "gedit-settings.h"
@@ -57,7 +56,6 @@ struct _GeditViewFrame
        GSettings *editor_settings;
 
        GeditView *view;
-       GeditViewCentering *view_centering;
        GtkFrame *map_frame;
 
        SearchMode search_mode;
@@ -1438,7 +1436,6 @@ gedit_view_frame_class_init (GeditViewFrameClass *klass)
        gtk_widget_class_set_template_from_resource (widget_class,
                                                     "/org/gnome/gedit/ui/gedit-view-frame.ui");
        gtk_widget_class_bind_template_child (widget_class, GeditViewFrame, view);
-       gtk_widget_class_bind_template_child (widget_class, GeditViewFrame, view_centering);
        gtk_widget_class_bind_template_child (widget_class, GeditViewFrame, map_frame);
        gtk_widget_class_bind_template_child (widget_class, GeditViewFrame, revealer);
        gtk_widget_class_bind_template_child (widget_class, GeditViewFrame, search_entry);
@@ -1570,14 +1567,6 @@ gedit_view_frame_new (void)
        return g_object_new (GEDIT_TYPE_VIEW_FRAME, NULL);
 }
 
-GeditViewCentering *
-gedit_view_frame_get_view_centering (GeditViewFrame *frame)
-{
-       g_return_val_if_fail (GEDIT_IS_VIEW_FRAME (frame), NULL);
-
-       return frame->view_centering;
-}
-
 GeditView *
 gedit_view_frame_get_view (GeditViewFrame *frame)
 {
diff --git a/gedit/gedit-view-frame.h b/gedit/gedit-view-frame.h
index d2e550840..78ac469d1 100644
--- a/gedit/gedit-view-frame.h
+++ b/gedit/gedit-view-frame.h
@@ -24,7 +24,6 @@
 #include <gtk/gtk.h>
 #include "gedit-document.h"
 #include "gedit-view.h"
-#include "gedit-view-centering.h"
 
 G_BEGIN_DECLS
 
@@ -33,9 +32,6 @@ G_DECLARE_FINAL_TYPE (GeditViewFrame, gedit_view_frame, GEDIT, VIEW_FRAME, GtkOv
 
 GeditViewFrame *gedit_view_frame_new                   (void);
 
-GeditViewCentering
-               *gedit_view_frame_get_view_centering    (GeditViewFrame *frame);
-
 GeditView      *gedit_view_frame_get_view              (GeditViewFrame *frame);
 
 void            gedit_view_frame_popup_search          (GeditViewFrame *frame);
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 5e4308385..ba61f6936 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -41,7 +41,6 @@
 #include "gedit-tab.h"
 #include "gedit-tab-private.h"
 #include "gedit-view-frame.h"
-#include "gedit-view-centering.h"
 #include "gedit-utils.h"
 #include "gedit-commands.h"
 #include "gedit-commands-private.h"
@@ -252,22 +251,6 @@ gedit_window_finalize (GObject *object)
        G_OBJECT_CLASS (gedit_window_parent_class)->finalize (object);
 }
 
-/* Center the view when the window is in fullscreen mode. */
-static void
-update_view_centering (GeditTab *tab,
-                      gpointer  user_data)
-{
-       GeditViewFrame *view_frame;
-       GeditViewCentering *view_centering;
-       gboolean is_fullscreen;
-
-       view_frame = _gedit_tab_get_view_frame (tab);
-       view_centering = gedit_view_frame_get_view_centering (view_frame);
-
-       is_fullscreen = GPOINTER_TO_BOOLEAN (user_data);
-       gedit_view_centering_set_centered (view_centering, is_fullscreen);
-}
-
 static void
 update_fullscreen (GeditWindow *window,
                    gboolean     is_fullscreen)
@@ -288,10 +271,6 @@ update_fullscreen (GeditWindow *window,
                }
        }
 
-       gedit_multi_notebook_foreach_tab (window->priv->multi_notebook,
-                                         (GtkCallback)update_view_centering,
-                                         GBOOLEAN_TO_POINTER (is_fullscreen));
-
 #ifndef OS_OSX
        if (is_fullscreen)
        {
diff --git a/gedit/meson.build b/gedit/meson.build
index 294437d22..29ddabde5 100644
--- a/gedit/meson.build
+++ b/gedit/meson.build
@@ -52,7 +52,6 @@ libgedit_private_h = files(
   'gedit-status-menu-button.h',
   'gedit-tab-label.h',
   'gedit-tab-private.h',
-  'gedit-view-centering.h',
   'gedit-view-frame.h',
   'gedit-window-private.h',
 )
@@ -108,7 +107,6 @@ libgedit_sources = files(
   'gedit-utils.c',
   'gedit-view-activatable.c',
   'gedit-view.c',
-  'gedit-view-centering.c',
   'gedit-view-frame.c',
   'gedit-window-activatable.c',
   'gedit-window.c',
diff --git a/gedit/resources/ui/gedit-view-frame.ui b/gedit/resources/ui/gedit-view-frame.ui
index b61d82c3a..660f7b10e 100644
--- a/gedit/resources/ui/gedit-view-frame.ui
+++ b/gedit/resources/ui/gedit-view-frame.ui
@@ -10,7 +10,7 @@
       <object class="GtkGrid" id="grid">
         <property name="visible">True</property>
         <child>
-          <object class="GeditViewCentering" id="view_centering">
+          <object class="GtkScrolledWindow" id="scrolled_window">
             <property name="visible">True</property>
             <property name="hexpand">True</property>
             <property name="vexpand">True</property>


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