summaryrefslogtreecommitdiff
path: root/surf.c
AgeCommit message (Collapse)Author
2015-11-22Fix pasteuri()Quentin Rameau
The uri check had been inverted.
2015-11-22Style fix in sigchld()Quentin Rameau
2015-11-22Replace use of EXIT_* constants to 0 and 1Quentin Rameau
2015-11-22Fix WM_CLASS and WM_WINDOW_ROLE propertiesQuentin Rameau
Instead of forcing class and instance names, which is what GTK does by default anyway, allow the user to set the instance name, but keep the general class as “Surf”. Is we won't support a “-name” parameter and don't implement a parsing of RESOURCE_NAME env variable, let's fallback on the third behaviour, use the name of the calling executable. That would let the user do things like 'ln -s ./surf ./surf-other; ./surf-other' and set different parameters for the two instances (in dwm for example). Try to generate a unique WM_WINDOW_ROLE (within the surf process) composed of “Surf” and the view ID.
2015-11-22Remove window hints settingsQuentin Rameau
Setting minimum size to 1x1 is not necessary as this is the default.
2015-11-22Style indentation fixQuentin Rameau
2015-11-22Continue making chars constQuentin Rameau
2015-11-22Correct and simplify buttonreleased() gdk eventQuentin Rameau
The passed event is a GdkEvent (or GdkEventButton), but not a GdkEventKey. Access the struct directly.
2015-11-22Un(g)boolify to separate GTK dependant code from the restQuentin Rameau
2015-11-22Use char instead of gchar and make them const when possibleQuentin Rameau
2015-11-22Style update for indentationQuentin Rameau
2015-11-21Add mouse function to play medias in external playerQuentin Rameau
Control + left click launches mpv with the target media url.
2015-11-21Style change in includes orderQuentin Rameau
2015-11-21Style change in functions orderingQuentin Rameau
Try to group and order functions in a logical manner. Same thing for config keybindings.
2015-11-20Cleanup remaining unused variables and copystr()Quentin Rameau
2015-11-20Adapt newwindow()Quentin Rameau
Reorder cmdline options alphabetically and try to keep settings as they have been toggled in this surf client.
2015-11-20Adapt user agent handlingQuentin Rameau
Now we can only append Surf version to the default WebKit user agent instead of setting the whole string (while this remains possible to do).
2015-11-20Adapt updatetitle()Quentin Rameau
Now always show loading progress, still print mouse over link uri before page uri. Process simplyfied because we use const strings.
2015-11-20Adapt toggle statisticsQuentin Rameau
Rename *togglestat to plural *togglestats, add frame flatenning indicator, resize array in consequence. Use a static index instead of a dynamic one as we always use all values anyway.
2015-11-20Adapt page statisticsQuentin Rameau
Rename *pagestat to plural *pagestats, and resize array to reflect missing proxy parameter.
2015-11-20Adapt loaduri()Quentin Rameau
Better handling of different URIs. Filter out “about:” scheme, dont touch URI if it contains a complete scheme (we assume "://", denotes one), else test if given path is an actual reachable file on the filesystem, else prepend arbitrary http:// scheme.
2015-11-20Rename mouse functions to clickFUNCTION()Quentin Rameau
2015-11-20Adapt toggle(), clean some config parametersQuentin Rameau
Regroup all toggles in an enum and handle them with a unique function via a switch. That lets us take different actions for each toggle. Add a frame flatenning and a dns preteching options.
2015-11-20Adapt find()Quentin Rameau
Slightly new behaviour: searching again for the same string (via MOD+/) resets the search (ie restarts search from document top). Searching for an empty string stops the search (ie all highlights are removed).
2015-11-20Adapt zoom()Quentin Rameau
2015-11-20Adapt navigate()Quentin Rameau
2015-11-20Remove togglescrollbars()Quentin Rameau
We do not have access to scrollbars and will have to manipulate DOM to do that.
2015-11-20Adapt scrollingQuentin Rameau
In fact, we have a scrolling handle ersatz for now using JavaScript calls as we don't have access anymore to scrollbars. We'll have to manipulate the DOM directly (later).
2015-11-20Adapt inspector handlingQuentin Rameau
The inspector is now easily manageable via API, there's no need for keeping its state in the Client.
2015-11-20Adapt print()Quentin Rameau
2015-11-20Simplify building of stylefiles pathQuentin Rameau
We can directly use style file pointers instead of using temporary string pointers.
2015-11-20Adapt setstyle()Quentin Rameau
We can't anymore pass a simple path to a stylefile, we have to read the entire file to create a stylesheet and apply it to the view.
2015-11-20Adapt clipboard()Quentin Rameau
Replace linkhover with target uri and add some comments
2015-11-20Rename fullscreen() to togglefullscreen()Quentin Rameau
And handle c->fullscreen value in winevent(). This way we keep track of fullscreen state even if we did not directly initiate the fullscreen.
2015-11-20Replace titlechangeleave() with catch-all winevent()Quentin Rameau
All GtkWidget events have the same function prototype with the generic GdkEvent as parameter. This will let us handle everything in the switch.
2015-11-20Adapt JavaScript functionsQuentin Rameau
Removed eval(), evalscript() is now sufficient and can directly execute passed JavaScript string.
2015-11-20Remove windowobjectcleared(), execute scripts on load finishedQuentin Rameau
The “window-object-cleared” signal is not directly accessible for specific WebViews now. We'll have to use an Extension or rewrite the JavaScript running functions.
2015-11-20Add createwindow() for GtkWindow creationQuentin Rameau
Move there window creation from showview().
2015-11-20Add closeview() for JavaScript window closingQuentin Rameau
Simply call gtk_widget_destroy() on the window. Then GtkWindow closing process will take care of the rest.
2015-11-20Remove (delete :>) deletion_interface()Quentin Rameau
2015-11-20Integrate beforerequest() into decidepolicy()Quentin Rameau
2015-11-20Remove contextmenu() and menuactivate() for "context-menu" signalQuentin Rameau
Those were added because “right click menu to copy the link URI will now work” (would not work) in 2013. It's been a while since that works without intervention.
2015-11-20Adapted buttonrelease()Quentin Rameau
Use the current hit test (c->mousepos) to determine where the mouse pointer is. It is possible to link an action to a click and still propagate the event after that by setting the “stop event” parameter of a Button to 0.
2015-11-20Replace initdownload() and intercept global download requests.Quentin Rameau
Attach to download requests on WebKitContext, this way we can easily manage all types of downloads (coming from views or not).
2015-11-20Adapted progresschanged()Quentin Rameau
2015-11-20Manage ssl errors with GTlsCertificateFlagsQuentin Rameau
Keep a GTlsCertificateFlags in Client for TLS errors. If we don't use a ssl connection, set it to a value greater than maximum error flag value (which is G_TLS_CERTIFICATE_VALIDATE_ALL for all possible errors).
2015-11-20Replace loadstatuschanged() with loadchanged()Quentin Rameau
2015-11-20Replace decidewindow() and decidedownload() with decidepolicy()Quentin Rameau
Now all the requests are triggered by one signal. We then handle each type, resource download, navigation, newwindow, in separate functions.
2015-11-20Replace createwindow() with createview()Quentin Rameau
We can now perform some filtering before opening a new view (window) when requested by JavaScript (either random or by a click).
2015-11-20Replace geopolicyrequested() with permissionrequested()Quentin Rameau
The permission-request signal can now ask for than a geolocation authorisation (though we only handle that for now).