commit c716e6b5c57dfc311b4aa3807a9d66304cdc864d
parent 83e80a7dda4671dd354bf3e26987e305f463cda0
Author: NunoSempere <nuno.semperelh@protonmail.com>
Date: Sat, 20 Jul 2024 23:05:45 -0400
GTK4: Fix bar visiblity shortcuts
Diffstat:
4 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/config.h b/config.h
@@ -3,9 +3,6 @@
#include <gtk/gtk.h>
// #include "/usr/include/gtk-4.0/gtk/gtk.h"
-// GKG 3 or GKG 4
-# define GTK_NUM 4
-
// Key user config
#define WIDTH 1920 // 960 for half-width, 1920 for full width
// #define HEIGHT 1080
@@ -14,7 +11,7 @@
#define BAR_SIZE 960
// More user config
-#define ZOOM_START_LEVEL 1.6
+#define ZOOM_START_LEVEL 2
#define ZOOM_STEPSIZE .1
#define MAX_NUM_TABS 8 // 0/false for unlimited tabs
#define SEARCH "https://search.brave.com/search?q=%s" // "https://search.nunosempere.com/search?q=%s", "https://lite.duckduckgo.com/html/?q=%s"
@@ -116,7 +113,7 @@ static struct {
{ CTRL, KEY(w), close_tab },
{ CTRL, KEY(l), show_searchbar },
- { CTRL, KEY(semicolon), hide_bar },
+ { CTRL, KEY(u), hide_bar }, // previously: KEY(semicolon)
{ CTRL, KEY(f), show_finder },
{ CTRL, KEY(n), finder_next },
{ CTRL, KEY(N), finder_prev },
diff --git a/rosenrot4_greenfield.c b/rosenrot4_greenfield.c
@@ -139,7 +139,7 @@ WebKitWebView* create_new_webview()
webkit_cookie_manager_set_accept_policy(cookiemanager, WEBKIT_COOKIE_POLICY_ACCEPT_ALWAYS);
- if (g_file_get_contents("~/opt/rosenrot/style.css", &style, NULL, NULL)) {
+ if (g_file_get_contents("/opt/rosenrot/style.css", &style, NULL, NULL)) {
webkit_user_content_manager_add_style_sheet(
contentmanager, webkit_user_style_sheet_new(style, WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, WEBKIT_USER_STYLE_LEVEL_USER, NULL, NULL));
}
@@ -181,13 +181,14 @@ void notebook_create_new_tab(GtkNotebook* notebook, const char* uri)
int n = gtk_notebook_append_page(notebook, GTK_WIDGET(view), NULL);
gtk_notebook_set_tab_reorderable(notebook, GTK_WIDGET(view), true);
gtk_widget_set_visible(GTK_WIDGET(window), 1);
- // gtk_widget_set_visible(GTK_WIDGET(bar.widget), 0);
+ gtk_widget_set_visible(GTK_WIDGET(bar.widget), 0);
load_uri(view, (uri) ? uri : HOME);
set_custom_style(view);
gtk_notebook_set_current_page(notebook, n);
gtk_notebook_set_tab_label_text(notebook, GTK_WIDGET(view), "-");
+ webkit_web_view_set_zoom_level(view, ZOOM_START_LEVEL);
num_tabs += 1;
} else {
}
@@ -202,7 +203,7 @@ void toggle_bar(GtkNotebook* notebook, Bar_entry_mode mode)
const char* url = webkit_web_view_get_uri(notebook_get_webview(notebook));
gtk_entry_set_placeholder_text(bar.line, "Search");
gtk_entry_buffer_set_text(bar.line_text, url, strlen(url));
- gtk_widget_show(GTK_WIDGET(bar.widget));
+ gtk_widget_set_visible(GTK_WIDGET(bar.widget), 1);
gtk_window_set_focus(window, GTK_WIDGET(bar.line));
break;
}
@@ -214,12 +215,12 @@ void toggle_bar(GtkNotebook* notebook, Bar_entry_mode mode)
gtk_entry_buffer_set_text(bar.line_text, search_text, strlen(search_text));
gtk_entry_set_placeholder_text(bar.line, "Find");
- gtk_widget_show(GTK_WIDGET(bar.widget));
+ gtk_widget_set_visible(GTK_WIDGET(bar.widget), 1);
gtk_window_set_focus(window, GTK_WIDGET(bar.line));
break;
}
case _HIDDEN:
- gtk_widget_hide(GTK_WIDGET(bar.widget));
+ gtk_widget_set_visible(GTK_WIDGET(bar.widget), 0);
}
}
@@ -386,7 +387,9 @@ int main(int argc, char** argv)
g_object_set(gtk_settings_get_default(), GTK_SETTINGS_CONFIG_H, NULL); // https://docs.gtk.org/gobject/method.Object.set.html
GtkCssProvider* css = gtk_css_provider_new();
gtk_css_provider_load_from_path(css, "/opt/rosenrot/style.css");
- gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(css), 800); /* might change with GTK4/webkitgtk6.0 */
+ gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(css), 0); /* might change with GTK4/webkitgtk6.0 */
+ printf("%d", GTK_STYLE_PROVIDER_PRIORITY_USER);
+ printf("%d", GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
// Create the main window
window = GTK_WINDOW(gtk_window_new());
@@ -416,6 +419,7 @@ int main(int argc, char** argv)
g_signal_connect_object(event_controller, "key-pressed", G_CALLBACK(handle_signal_keypress), window, G_CONNECT_DEFAULT);
gtk_widget_add_controller(GTK_WIDGET(window), event_controller);
+ g_signal_connect(window, "destroy", G_CALLBACK(exit), notebook);
// Show the application window
gtk_window_present(window);
@@ -423,7 +427,6 @@ int main(int argc, char** argv)
char* first_uri = argc > 1 ? argv[1] : HOME;
notebook_create_new_tab(notebook, first_uri);
-
/* Show to user */
gtk_widget_set_visible(GTK_WIDGET(window), 1);
if (argc != 0) gtk_widget_set_visible(GTK_WIDGET(bar.widget), 0);
diff --git a/style.css b/style-gtk3.css
diff --git a/style-gtk4.css b/style-gtk4.css
@@ -0,0 +1,41 @@
+* {
+ font-size: 25px;
+ color: #333;
+}
+
+/* Make titlebar pretty gigantic. I'm pretty myopic. */
+.titlebar {
+ padding: 5px;
+ font-size: 30px;
+}
+
+
+.titlebar * {
+ padding: 5px;
+ font-size: 27px;
+}
+
+header * {
+ font-size: 20px;
+ padding: 5px;
+}
+
+tabs {
+ padding: 3px;
+}
+
+tab {
+ margin: 2px 5px 4px 0px; /* top right bottom left */
+ padding: 5px;
+ border-style: solid;
+ font-size: 27px;
+}
+
+entry {
+ padding-left: 10px;
+}
+
+entry:focus {
+ padding-left: 10px;
+
+}