FYI As promised, I now have a patch ready which implements tabbed browsing. The patch is quite big (173586 bytes, 42305 gzipped), so I think it is not a good idea to send it to the mailing list. As I currently do not have a webserver handy I can not put it on my site like I used to do when times were good and broadband was available (1-0 for The Netherlands - Sweden). Why is the patch so big? Well, it touches many files (37 source and header files, 6 other files) in Dillo, as it moves around some code and adds some more. The moving around is mostly due to the fact that, to implement tabs, I had to split 'document' from 'interface' logic in Dillo. In the current (non-patched) version of Dillo, the 'document' (everything related to a single browsing session in a single window) code is spread out over several files (interface.c, nav.c, web.c, html.c, plain.c, etc...). For tabs (and, later, frames) this does not work well, since a single browser window can contain several individual browsing sessions (tabs, frames (when implemented)). I solved this by putting all document-related stuff in a new abstraction, the 'DilloDoc' (defined in browser.h). DilloDoc contains the document-related stuff from BrowserWindow, progress data and document state info (the 'ready' bit) and - currently - the document-specific widgets (docwin, pagemark menu). Tab-specific stuff can be found in src/tab.c|h. As I know that not everybody wants to have tab functionality in the browser - it can also be implemented at the window manager level - I made the tabbed feature optional. To compile Dillo without tabs, use the --disable-tabs option, and there will be no tab-specific code in your binary. I did some tests with regard to 'code bloat' on the current, new (tabs disabled) en new (tabs enabled) versions of Dillo, which show a binary code size increase of about 7500 bytes for the tab feature. This is not to bad I think. The results of these tests can be found in the doc/Browser_Tabs.txt document (which comes with the patch). So, list, tell me what to do... Do you want your mailboxes to overflow, shall I send the patch to a select few, shall I wrap it in tar paper and bury it? I have already sent it to Jorge and the individuals who expressed interest in having a look at it, but I have had several requests from people on the list to send the patch to the list as well. As I have only a puny modem line here in Sweden, I do not relish the prospect of having to send the patch to loads of individuals. You decide. Oh, and I will be off-line between the 23d of june and the 13th of juli, so please let me know beforehand... Also, as the patch is against today's CVS version of Dillo, it has a relatively short shelf life. So, let me know, or (Jorge) apply it to CVS so others can have a go at it. Go'natt//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
On Tue, Jun 17, 2003 at 12:43:30AM +0200, Frank de Lange wrote:
You decide.
i love it. it's just what i've been waiting for. i know, i know. tabbing should be done by the window manager. but until every window manager (or at least, my favorite) has implemented tabbing, i will enjoy this patch. browsing the web is the only thing where i really want tabbing anyway. oh, and i just noticed it segfaults when i middle-click a link. :) thanks, raphael
Raphael Barabas wrote:
On Tue, Jun 17, 2003 at 12:43:30AM +0200, Frank de Lange wrote:
You decide.
i love it. it's just what i've been waiting for.
i know, i know. tabbing should be done by the window manager. but until every window manager (or at least, my favorite) has implemented tabbing, i will enjoy this patch. browsing the web is the only thing where i really want tabbing anyway.
oh, and i just noticed it segfaults when i middle-click a link. :)
Hm, yeah it does. Did not used to do that. Must have messed something up somewhere. Well, that is why I sent the patch around of course... Will look into that when I am less sleepy... Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
Frank de Lange wrote:
Raphael Barabas wrote:
On Tue, Jun 17, 2003 at 12:43:30AM +0200, Frank de Lange wrote:
You decide.
i love it. it's just what i've been waiting for. i know, i know. tabbing should be done by the window manager. but until every window manager (or at least, my favorite) has implemented tabbing, i will enjoy this patch. browsing the web is the only thing where i really want tabbing anyway.
oh, and i just noticed it segfaults when i middle-click a link. :)
Hm, yeah it does. Did not used to do that. Must have messed something up somewhere. Well, that is why I sent the patch around of course...
Will look into that when I am less sleepy...
Cheers//Frank
I see what has gone wrong, I missed a small piece of the patch. Will include it in a new version tomorrow... If you want to fix it by hand, just change line 257 of html.c from: - a_Commands_open_link_nw_callback(NULL, lb->dd); + a_Commands_open_link_nw_callback(NULL, lb->dd->bw); and it should work again. Sorry for the inconvenience... Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
Frank de Lange wrote:
Frank de Lange wrote:
Raphael Barabas wrote:
On Tue, Jun 17, 2003 at 12:43:30AM +0200, Frank de Lange wrote:
You decide.
i love it. it's just what i've been waiting for. i know, i know. tabbing should be done by the window manager. but until every window manager (or at least, my favorite) has implemented tabbing, i will enjoy this patch. browsing the web is the only thing where i really want tabbing anyway.
oh, and i just noticed it segfaults when i middle-click a link. :)
Hm, yeah it does. Did not used to do that. Must have messed something up somewhere. Well, that is why I sent the patch around of course...
Will look into that when I am less sleepy...
Cheers//Frank
I see what has gone wrong, I missed a small piece of the patch. Will include it in a new version tomorrow... If you want to fix it by hand, just change line 257 of html.c from:
- a_Commands_open_link_nw_callback(NULL, lb->dd); + a_Commands_open_link_nw_callback(NULL, lb->dd->bw);
and it should work again.
Sorry for the inconvenience...
Cheers//Frank
I fixed the patch on the geocities website: http://www.geocities.com/ikbenfrank/dillo-20030615-tabs.patch.gz So, anyone who got the patch in the first hour or so after release, please get it again... It missed a small, but essential part... The md5sum of the new, fixed patch is a72edfd6c6fe3fab5153df9bde760985, it is 42305 bytes. Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
when a_Interface_msg is called. (gdb) bt #0 0x4019752d in gtk_type_check_object_cast () from /usr/lib/libgtk-1.2.so.0 #1 0x08073c05 in a_Interface_msg (bw=0x80a1268, format=0x8278f10 "Hi browser") at interface.c:763 #2 0x08056eab in a_Capi_ccc (Op=2, Branch=138708789, Dir=1, Info=0x80ff670, Data1=0x8278f10, Data2=0x8448730) at capi.c:330 #3 0x08054b2e in a_Chain_fcb (Op=2, Info=0xa, Data1=0x8278f10, Data2=0x8448730) at chain.c:95 #4 0x0807bf64 in Dpi_parse_token (conn=0x82b6fa8) at dpi.c:272 #5 0x0807bfa1 in Dpi_process_io (Op=4, Data1=0xa, conn=0x82b6fa8) at dpi.c:296 #6 0x08054b2e in a_Chain_fcb (Op=2, Info=0xa, Data1=0x823ebd8, Data2=0x0) at chain.c:95 #7 0x0807c9da in IO_read (io=0x823ebd8) at IO.c:420 #8 0x0807cabd in IO_callback (src=0x8120910, cond=G_IO_IN, data=0x617) at IO.c:504 #9 0x40217a56 in g_io_add_watch () from /usr/lib/libglib-1.2.so.0 #10 0x4021903d in g_get_current_time () from /usr/lib/libglib-1.2.so.0 #11 0x402194f4 in g_get_current_time () from /usr/lib/libglib-1.2.so.0 #12 0x40219724 in g_main_run () from /usr/lib/libglib-1.2.so.0 #13 0x4013fc3f in gtk_main () from /usr/lib/libgtk-1.2.so.0 #14 0x08067215 in main (argc=1, argv=0xbffffb04) at dillo.c:298 Bandaid fix seems to be commenting out code, which causes calling a_Interface_msg in dpi code (a_Interface_msg call in a_Capi_ccc and send_status_msg branch in Dpi_parse_token).
An "unofficial" screenshot of a tabbed dillo would be nice - perhaps a site: "Unofficial */HaCkEd/* Screenshots"?
TheStar wrote:
An "unofficial" screenshot of a tabbed dillo would be nice - perhaps a site: "Unofficial */HaCkEd/* Screenshots"?
_______________________________________________ Dillo-dev mailing list Dillo-dev@lists.auriga.wearlab.de http://lists.auriga.wearlab.de/cgi-bin/mailman/listinfo/dillo-dev
Screenshot on the patch website (geocities, so start your ad-blockers...) http://www.geocities.com/ikbenfrank/ Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
participants (4)
-
Frank de Lange
-
Madis Janson
-
Raphael Barabas
-
TheStar