about summary refs log tree commit diff stats
Commit message (Expand)AuthorAgeFilesLines
...
* *elioat2024-10-271-10/+2
* *elioat2024-10-271-7/+34
* *elioat2024-10-261-70/+35
* *elioat2024-10-261-2/+209
* *elioat2024-10-251-1/+1
* *elioat2024-10-251-1/+10
* *elioat2024-10-251-1/+50
* *elioat2024-10-251-1/+1
* *elioat2024-10-242-6/+20
* *elioat2024-10-241-2/+1
* *elioat2024-10-232-734/+92
* Merge branch 'master' of tilde.institute:~/public_repos/tourelioat2024-10-231-7/+30
|\
| * *elioat2024-10-211-2/+6
| * *elioat2024-10-211-1/+3
| * *elioat2024-10-211-2/+4
| * *elioat2024-10-211-5/+20
* | *elioat2024-10-231-0/+693
|/
* *elioat2024-10-201-1/+2
* *elioat2024-10-202-14/+60
* *elioat2024-10-201-0/+504
* *elioat2024-10-161-1/+1
* *elioat2024-10-161-0/+28
* *elioat2024-10-161-0/+2
* ()elioat2024-10-161-0/+705
* *elioat2024-10-161-0/+53
* *elioat2024-10-141-0/+52
* 8elioat2024-10-141-0/+728
* *elioat2024-10-132-14/+504
* *elioat2024-10-131-5/+1
* *elioat2024-10-131-0/+227
* *elioat2024-10-111-6/+0
* *elioat2024-10-111-0/+31
* *elioat2024-10-111-0/+0
* *elioat2024-10-112-0/+20608
* *elioat2024-10-091-156/+162
* *elioat2024-10-091-8/+8
* *elioat2024-10-091-0/+291
* *elioat2024-09-2635-29/+0
* *elioat2024-09-261-0/+164
* *elioat2024-09-251-0/+193
* *elioat2024-09-2039-0/+134
* *elioat2024-09-091-117/+6
* *elioat2024-09-081-0/+1108
* *elioat2024-09-082-25/+265
* *elioat2024-09-073-0/+709
* *elioat2024-09-071-2/+0
* *elioat2024-09-071-1/+1
* *elioat2024-09-041-16/+39
* *elioat2024-09-031-3/+27
* *elioat2024-09-031-1/+16
pan class="o">->tab_id); return (FALSE); /* NOT handled */ } gboolean inspector_delete(GtkWidget *inspector_window, GdkEvent *e, struct tab *t) { inspector_close_window(t->inspector, t); return (TRUE); /* handled */ } WebKitWebView* inspector_inspect_web_view_cb(WebKitWebInspector *inspector, WebKitWebView* wv, struct tab *t) { DNPRINTF(XT_D_INSPECTOR, "%s: tab %d\n", __func__, t->tab_id); if (t->inspector_window) goto done; t->inspector_window = create_window("inspector"); t->inspector_view = webkit_web_view_new(); gtk_container_add(GTK_CONTAINER(t->inspector_window), t->inspector_view); g_signal_connect(t->inspector_window, "delete-event", G_CALLBACK(inspector_delete), t); done: return WEBKIT_WEB_VIEW(t->inspector_view); } gboolean inspector_show_window(WebKitWebInspector *inspector, struct tab *t) { DNPRINTF(XT_D_INSPECTOR, "%s: tab %d\n", __func__, t->tab_id); if (t->inspector_window) { g_signal_emit_by_name(inspector, "attach-window", t, NULL); gtk_widget_show_all(t->inspector_window); gtk_window_present(GTK_WINDOW(t->inspector_window)); return (TRUE); /* handled */ } return (FALSE); /* NOT handled */ } void inspector_finished(WebKitWebInspector *inspector, struct tab *t) { DNPRINTF(XT_D_INSPECTOR, "%s: tab %d\n", __func__, t->tab_id); if (t->inspector_window) { g_signal_handlers_disconnect_by_func( t->inspector, inspector_attach_window, t); g_signal_handlers_disconnect_by_func( t->inspector, inspector_close_window, t); g_signal_handlers_disconnect_by_func( t->inspector, inspector_detach_window, t); g_signal_handlers_disconnect_by_func( t->inspector, inspector_finished, t); g_signal_handlers_disconnect_by_func( t->inspector, inspector_inspect_web_view_cb, t); g_signal_handlers_disconnect_by_func( t->inspector, inspector_show_window, t); gtk_widget_hide(t->inspector_window); /* XXX it seems that the window is disposed automatically */ t->inspector_window = NULL; t->inspector_view = NULL; } } void setup_inspector(struct tab *t) { DNPRINTF(XT_D_INSPECTOR, "%s: tab %d\n", __func__, t->tab_id); t->inspector = webkit_web_view_get_inspector(WEBKIT_WEB_VIEW(t->wv)); g_object_connect(G_OBJECT(t->inspector), "signal::attach-window", G_CALLBACK(inspector_attach_window), t, "signal::close-window", G_CALLBACK(inspector_close_window), t, "signal::detach-window", G_CALLBACK(inspector_detach_window), t, "signal::finished", G_CALLBACK(inspector_finished), t, "signal::inspect-web-view", G_CALLBACK(inspector_inspect_web_view_cb), t, "signal::show-window", G_CALLBACK(inspector_show_window), t, (char *)NULL); } int inspector_cmd(struct tab *t, struct karg *args) { DNPRINTF(XT_D_INSPECTOR, "%s: tab %d\n", __func__, t->tab_id); if (t == NULL) return (1); if (args->i & XT_INS_SHOW) webkit_web_inspector_show(t->inspector); else if (args->i & XT_INS_HIDE) webkit_web_inspector_close(t->inspector); else if (args->i & XT_INS_CLOSE) inspector_finished(t->inspector, t); return (XT_CB_PASSTHROUGH); }