Comments (6)
The background is related to your gtk theme. For example, the following will set it to black:
style "bg-fill"
{
bg[NORMAL] = "#000000"
}
class "UniImageView" style "bg-fill"
The F key, currently has function set_fitting
, so i don't see a bug here...
from viewnior.
Although not a bug, it would be nice if the background color could be changed in the preferences (like Irfanview and others do), without having to patch the GTK theme.
from viewnior.
I agree. Viewnior is my preferred viewer, but I can't change background color to black. I tried editing .gtkrc-2.0, but it didn't work. Could you please add option to change background color?
from viewnior.
@elman22
So probably you are doing something wrong.
However, that's a simple patch, you can try it:
data/vnr-preferences-dialog.ui | 14 ++++++++++++++
src/uni-image-view.c | 7 +++++++
src/vnr-prefs.c | 15 +++++++++++++++
src/vnr-prefs.h | 1 +
4 files changed, 37 insertions(+)
diff --git a/data/vnr-preferences-dialog.ui b/data/vnr-preferences-dialog.ui
index 591aa79..cf0251a 100644
--- a/data/vnr-preferences-dialog.ui
+++ b/data/vnr-preferences-dialog.ui
@@ -127,6 +127,20 @@
<property name="position">4</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="builtin_bg">
+ <property name="label" translatable="yes">Set built-in background</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
</object>
</child>
<child type="tab">
diff --git a/src/uni-image-view.c b/src/uni-image-view.c
index 6a6714c..69fb6fe 100755
--- a/src/uni-image-view.c
+++ b/src/uni-image-view.c
@@ -488,6 +488,8 @@ uni_image_view_realize (GtkWidget * widget)
{
UniImageView *view = UNI_IMAGE_VIEW (widget);
gtk_widget_set_realized(widget, TRUE);
+ VnrWindow *vnr_win = VNR_WINDOW(gtk_widget_get_toplevel(widget));
+ g_assert(gtk_widget_is_toplevel(GTK_WIDGET(vnr_win)));
GtkAllocation allocation;
gtk_widget_get_allocation (widget, &allocation);
@@ -515,6 +517,11 @@ uni_image_view_realize (GtkWidget * widget)
gdk_window_set_user_data (window, view);
GtkStyle *style = gtk_widget_get_style (widget);
+ if (vnr_win->prefs->builtin_bg) {
+ GdkColor color;
+ gdk_color_parse ("#323232", &color);
+ style->bg[0] = color;
+ }
style = gtk_style_attach (style, window);
gtk_widget_set_style (widget, style);
gtk_style_set_background (style, window, GTK_STATE_NORMAL);
diff --git a/src/vnr-prefs.c b/src/vnr-prefs.c
index a6e1609..1acdb42 100644
--- a/src/vnr-prefs.c
+++ b/src/vnr-prefs.c
@@ -41,6 +41,13 @@ toggle_show_hidden_cb (GtkToggleButton *togglebutton, gpointer user_data)
}
static void
+toggle_builtin_bg_cb (GtkToggleButton *togglebutton, gpointer user_data)
+{
+ VNR_PREFS(user_data)->builtin_bg = gtk_toggle_button_get_active(togglebutton);
+ vnr_prefs_save(VNR_PREFS(user_data));
+}
+
+static void
toggle_fit_on_fullscreen_cb (GtkToggleButton *togglebutton, gpointer user_data)
{
VNR_PREFS(user_data)->fit_on_fullscreen = gtk_toggle_button_get_active(togglebutton);
@@ -151,6 +158,7 @@ vnr_prefs_set_default(VnrPrefs *prefs)
{
prefs->zoom = VNR_PREFS_ZOOM_SMART;
prefs->show_hidden = FALSE;
+ prefs->builtin_bg = FALSE;
prefs->fit_on_fullscreen = TRUE;
prefs->smooth_images = TRUE;
prefs->confirm_delete = TRUE;
@@ -180,6 +188,7 @@ build_dialog (VnrPrefs *prefs)
GObject *close_button;
GtkToggleButton *show_hidden;
+ GtkToggleButton *builtin_bg;
GtkToggleButton *fit_on_fullscreen;
GtkBox *zoom_mode_box;
GtkComboBox *zoom_mode;
@@ -218,6 +227,10 @@ build_dialog (VnrPrefs *prefs)
show_hidden = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "show_hidden"));
gtk_toggle_button_set_active( show_hidden, prefs->show_hidden );
g_signal_connect(G_OBJECT(show_hidden), "toggled", G_CALLBACK(toggle_show_hidden_cb), prefs);
+
+ builtin_bg = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "builtin_bg"));
+ gtk_toggle_button_set_active( builtin_bg, prefs->builtin_bg );
+ g_signal_connect(G_OBJECT(builtin_bg), "toggled", G_CALLBACK(toggle_builtin_bg_cb), prefs);
/* Fit on fullscreen checkbox */
fit_on_fullscreen = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "fit_on_fullscreen"));
@@ -359,6 +372,7 @@ vnr_prefs_load (VnrPrefs *prefs)
prefs->zoom = g_key_file_get_integer (conf, "prefs", "zoom-mode", &error);
prefs->fit_on_fullscreen = g_key_file_get_boolean (conf, "prefs", "fit-on-fullscreen", &error);
prefs->show_hidden = g_key_file_get_boolean (conf, "prefs", "show-hidden", &error);
+ prefs->builtin_bg = g_key_file_get_boolean (conf, "prefs", "own-background", &error);
prefs->smooth_images = g_key_file_get_boolean (conf, "prefs", "smooth-images", &error);
prefs->confirm_delete = g_key_file_get_boolean (conf, "prefs", "confirm-delete", &error);
prefs->reload_on_save = g_key_file_get_boolean (conf, "prefs", "reload-on-save", &error);
@@ -449,6 +463,7 @@ vnr_prefs_save (VnrPrefs *prefs)
g_key_file_set_integer (conf, "prefs", "zoom-mode", prefs->zoom);
g_key_file_set_boolean (conf, "prefs", "fit-on-fullscreen", prefs->fit_on_fullscreen);
g_key_file_set_boolean (conf, "prefs", "show-hidden", prefs->show_hidden);
+ g_key_file_set_boolean (conf, "prefs", "own-background", prefs->builtin_bg);
g_key_file_set_boolean (conf, "prefs", "smooth-images", prefs->smooth_images);
g_key_file_set_boolean (conf, "prefs", "confirm-delete", prefs->confirm_delete);
g_key_file_set_boolean (conf, "prefs", "reload-on-save", prefs->reload_on_save);
diff --git a/src/vnr-prefs.h b/src/vnr-prefs.h
index a7a1301..db8b187 100644
--- a/src/vnr-prefs.h
+++ b/src/vnr-prefs.h
@@ -90,6 +90,7 @@ struct _VnrPrefs {
VnrPrefsModify behavior_modify;
gboolean fit_on_fullscreen;
gboolean show_hidden;
+ gboolean builtin_bg;
gboolean smooth_images;
gboolean confirm_delete;
gboolean reload_on_save;
from viewnior.
Thank you very much for the patch. I will try that later. For now I just switched GTK2 theme to dark one. Since I'm on Plasma, it doesn't affect many other applications, so I'm fine with that for now.
from viewnior.
Mint-Y-Dark-Aqua GTK2 theme works well, on Plasma, with many apps like Viewnior, Leafpad, etc .
from viewnior.
Related Issues (20)
- [Feature request] Allow to set custom classes on windows spawned by viewnior HOT 1
- Meaning of "nior" ? HOT 2
- How to set an application for the "File/Edit With" menu? HOT 1
- Please Fix The File Permissions
- Question: Open New Image In Fullscreen? HOT 1
- Taking Screenshots - Images Viewed Are Blurry With Viewnior 1.8 HOT 2
- Use symbolic icons in toolbar
- Multi-touch trackpad support?
- Thank You for giving option Scrollbar!
- Document keyboard commands
- Can't click on link in About HOT 15
- Save as, again
- Viewnior doesn't work in a bash script HOT 1
- viewnior: error while loading shared libraries HOT 8
- Untranslated strings HOT 1
- Feature request: An option to zoom in/out when cropping
- bmp picture shown with X offset in Viewnior 1.8
- support for .heic images HOT 2
- file name extension prevents viewnior from opening the file HOT 1
- [Feature request] copy image to clipboard HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from viewnior.