commit bdfddd3a3a9cb845f94d05a9a5a42cc77912176a
parent b138c2c83ab1c1fb141c0a94b18c010c64a37163
Author: NunoSempere <nuno.semperelh@protonmail.com>
Date: Mon, 22 Jul 2024 19:29:15 -0400
more fengshui
Diffstat:
| M | rosenrot4.c | | | 56 | ++++++++++++++++++++++++-------------------------------- |
1 file changed, 24 insertions(+), 32 deletions(-)
diff --git a/rosenrot4.c b/rosenrot4.c
@@ -37,7 +37,7 @@ WebKitWebView* notebook_get_webview(GtkNotebook* notebook) /* TODO: Think throug
void load_uri(WebKitWebView* view, const char* uri)
{
bool is_empty_uri = (strlen(uri) == 0);
- bool has_direct_uri_prefix = (g_str_has_prefix(uri, "http://") || g_str_has_prefix(uri, "https://") || g_str_has_prefix(uri, "file://") || g_str_has_prefix(uri, "about:"));
+ bool has_direct_uri_prefix = g_str_has_prefix(uri, "http://") || g_str_has_prefix(uri, "https://") || g_str_has_prefix(uri, "file://") || g_str_has_prefix(uri, "about:");
bool has_common_domain_extension = (strstr(uri, ".com") || strstr(uri, ".org"));
bool has_shortcut;
@@ -260,12 +260,9 @@ int handle_shortcut(func id)
webkit_web_view_go_forward(view);
break;
- case toggle_custom_style: /* Ctrl s + Ctrl Shift R to reload */
- if (custom_style_enabled)
- custom_style_enabled = 0;
- else
- custom_style_enabled = 1;
- // break; passthrough
+ case toggle_custom_style:
+ custom_style_enabled ^= 1;
+ // fallthrough
case refresh:
webkit_web_view_reload(view);
break;
@@ -294,28 +291,23 @@ int handle_shortcut(func id)
// https://stackoverflow.com/questions/92396/why-cant-variables-be-declared-in-a-switch-statement
int n = gtk_notebook_get_n_pages(notebook);
int k = gtk_notebook_get_current_page(notebook);
- int l = (n + k - 1) % n;
- gtk_notebook_set_current_page(notebook, l);
+ int o = (n + k - 1) % n;
+ gtk_notebook_set_current_page(notebook, o);
break;
case next_tab:;
int m = gtk_notebook_get_n_pages(notebook);
- int i = gtk_notebook_get_current_page(notebook);
- int j = (i + 1) % m;
- gtk_notebook_set_current_page(notebook, j);
+ int l = gtk_notebook_get_current_page(notebook);
+ int p = (l + 1) % m;
+ gtk_notebook_set_current_page(notebook, p);
break;
case close_tab:
gtk_notebook_remove_page(notebook, gtk_notebook_get_current_page(notebook));
num_tabs -= 1;
-
- switch (gtk_notebook_get_n_pages(notebook)) {
- case 0:
- exit(0);
- break;
- case 1:
- gtk_notebook_set_show_tabs(notebook, false);
- break;
+ if (!gtk_notebook_get_n_pages(notebook)) {
+ exit(0);
+ } else {
+ gtk_notebook_set_show_tabs(notebook, false);
}
-
break;
case toggle_fullscreen:
if (is_fullscreen)
@@ -352,7 +344,6 @@ int handle_shortcut(func id)
case halve_window:
gtk_window_set_default_size(window, FULL_WIDTH/2, HEIGHT_GTK4);
break;
-
case rebig_window:
gtk_window_set_default_size(window, FULL_WIDTH, HEIGHT_GTK4);
break;
@@ -394,9 +385,10 @@ static int handle_signal_keypress(void* self, int keyval, int keycode,
int main(int argc, char** argv)
{
- /* Initialize GTK in general */
+ // Initialize GTK in general
gtk_init();
- g_object_set(gtk_settings_get_default(), GTK_SETTINGS_CONFIG_H, NULL); // https://docs.gtk.org/gobject/method.Object.set.html
+ 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-gtk4.css");
gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_USER);
@@ -411,17 +403,17 @@ int main(int argc, char** argv)
gtk_notebook_set_show_border(notebook, false);
gtk_window_set_child(window, GTK_WIDGET(notebook));
- // Bar
+ // Set up top bar
bar.line_text = GTK_ENTRY_BUFFER(gtk_entry_buffer_new("", 0));
bar.line = GTK_ENTRY(gtk_entry_new_with_buffer(bar.line_text));
- gtk_entry_set_alignment(bar.line, 0.48);
+ gtk_entry_set_alignment(bar.line, 0.5);
gtk_widget_set_size_request(GTK_WIDGET(bar.line), BAR_WIDTH, -1);
bar.widget = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_header_bar_set_title_widget(bar.widget, GTK_WIDGET(bar.line));
gtk_window_set_titlebar(window, GTK_WIDGET(bar.widget));
- // Signals
+ // Setup signals
GtkEventController* event_controller = gtk_event_controller_key_new();
g_signal_connect(event_controller, "key-pressed", G_CALLBACK(handle_signal_keypress), NULL);
gtk_widget_add_controller(GTK_WIDGET(window), event_controller);
@@ -429,17 +421,17 @@ int main(int argc, char** argv)
g_signal_connect(bar.line, "activate", G_CALLBACK(handle_signal_bar_press_enter), notebook);
g_signal_connect(GTK_WIDGET(window), "destroy", G_CALLBACK(exit), notebook);
- // Show the application window
- gtk_window_present(window);
-
+ // Parse first tab
char* first_uri = argc > 1 ? argv[1] : HOME;
notebook_create_new_tab(notebook, first_uri);
- /* Show to user */
+ // Show to user
+ // The first two commands are redundant with notebook_create_new_tab
+ gtk_window_present(window);
gtk_widget_set_visible(GTK_WIDGET(window), 1);
if (argc != 0) gtk_widget_set_visible(GTK_WIDGET(bar.widget), 0);
- /* Deal with more tabs */
+ // Deal with more tabs, if any
if (argc > 2) {
gtk_notebook_set_show_tabs(notebook, true);
for (int i = 2; i < argc; i++) {