Commit Graph

86 Commits

Author SHA1 Message Date
Přemysl Eric Janouch fcc0c3ef2d
Fix an unimportant memory leak 2018-09-23 11:45:23 +02:00
Přemysl Eric Janouch 2efaed1a56
Implement the INCR ICCCM selection mechanism
xcb_get_property is now also called with a length that is a multiple
of four so that we advance the offset properly.

Some cleanup.

Selection code should work pretty well by now.  The amount of code
supporting it has more than doubled since GTK+.
2018-09-23 11:45:13 +02:00
Přemysl Eric Janouch 86417d512b
Re-shuffle code, no functional changes 2018-09-23 06:38:03 +02:00
Přemysl Eric Janouch 942bda7db4
Use XCB and SelectSelectionInput instead of GTK+
As it happens, there is no real need to constantly poll for changes,
since XFixes can inform us of updates as they happen.

With GTK+ gone we've got dependencies and error handling under control.
XCB is a truly awful thing to learn, though.

Our method will never work on Wayland or Windows, so we don't miss out
on anything by abandoning the huge toolkit.
2018-09-23 06:38:03 +02:00
Přemysl Eric Janouch b0d3b2dcb5
Strip whitespace from clipboard contents 2018-06-30 13:23:30 +02:00
Přemysl Eric Janouch e5faed57c2
Relicense to 0BSD, update mail address
I've come to the conclusion that copyright mostly just stands in the way
of software development.  In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.

The updated mail address, also used in my author/committer lines,
is shorter and looks nicer.  People rarely interact anyway.
2018-06-24 05:23:31 +02:00
Přemysl Eric Janouch 80306c5779
Skip combining marks in the editor
For slightly more correct Unicode handling.
2017-06-27 20:03:38 +02:00
Přemysl Eric Janouch 3067e15929
Fix and update LICENSE 2017-02-03 23:14:34 +01:00
Přemysl Eric Janouch 77918d8a8c
Fix some character width counting 2016-10-22 23:38:00 +02:00
Přemysl Eric Janouch fc395d4068
Fix mouse clicks on full width characters 2016-10-22 23:29:29 +02:00
Přemysl Eric Janouch 6155c9bf91
Try to make the view full 2016-10-22 23:10:58 +02:00
Přemysl Eric Janouch dcfc9bfd22
Disallow scrolling down too much
The ability to scroll past the end was rather unusual.

You can still achieve that by searching and resizing the window now.
2016-10-18 20:46:51 +02:00
Přemysl Eric Janouch e06d9c9f71
Tiny enhancements and cleanups 2016-10-18 20:46:38 +02:00
Přemysl Eric Janouch 6f91f8131a
Microoptimization
It hurts me to see wasted mallocs.
2016-10-18 19:06:51 +02:00
Přemysl Eric Janouch a63db9d978
Fix regression in GLib message handler 2016-10-12 22:21:15 +02:00
Přemysl Eric Janouch 1f811d903e
Don't increment the result from GUINT_TO_POINTER
Increment the argument instead.
2016-10-08 09:21:54 +02:00
Přemysl Eric Janouch a7068157f2
Parallelize dictionary loading
It gives me about 2.5 times speed-up on a 4-core CPU.

It could be even better and I mainly blame GLib.
2016-10-08 03:39:06 +02:00
Přemysl Eric Janouch 36236955e5
Simplify, optimize terminal output
Finally getting rid off app_add_utf8_string().

Just like in nncmpp, the dependency on ncurses is now a bit narrower.
2016-10-07 18:35:27 +02:00
Přemysl Eric Janouch 930ce8a944
Fix regression in locale support 2016-10-07 17:26:56 +02:00
Přemysl Eric Janouch ee37895206
Update documentation 2016-09-28 16:11:56 +02:00
Přemysl Eric Janouch 38b463c883
Move the -w switch to the configuration file
Update README accordingly.

Woo, I get to remove code.
2016-09-28 06:01:13 +02:00
Přemysl Eric Janouch b3458d84a0
Handle mouse clicks on dictionary names 2016-09-28 05:27:53 +02:00
Přemysl Eric Janouch 1f60d096ea
Fix mouse in the search bar 2016-09-28 05:27:22 +02:00
Přemysl Eric Janouch 30345ec8d4
Show all dictionaries in the header
Make the style of the active dictionary's name configurable.
2016-09-28 05:05:24 +02:00
Přemysl Eric Janouch 4f0a47d5f7
Allow loading multiple dictionaries
They can also be specified in the configuration.

They can be switched between using Alt+<number>.
2016-09-28 04:30:15 +02:00
Přemysl Eric Janouch f453b9dd43
Extract get_xdg_config_dirs() 2016-09-28 04:16:00 +02:00
Přemysl Eric Janouch 021fdcc97c
Use GLib booleans 2016-09-28 03:05:39 +02:00
Přemysl Eric Janouch 474bcb518a
Make app_load_config() return any error 2016-09-28 00:14:11 +02:00
Přemysl Eric Janouch 08fdad56eb
Fix Travis build 2016-09-26 21:14:13 +02:00
Přemysl Eric Janouch 5ee562faf4
Make it possible to disable prefix highlighting 2016-09-26 21:06:51 +02:00
Přemysl Eric Janouch 81d702ed66
Add a configuration file
Now you can have pretty colors w/o having to hardcode them.
The selection is rather limited for now, though.

Search "centering" can now be disabled by default as well.
2016-09-26 21:06:51 +02:00
Přemysl Eric Janouch 4755033781
Fix bottom right corner 2016-09-26 20:50:38 +02:00
Přemysl Eric Janouch a591041912
Highlight the longest matching prefix of entries 2016-09-26 15:59:26 +02:00
Přemysl Eric Janouch a87aca9c76
Refactor app_add_utf8_string() 2016-09-26 14:14:01 +02:00
Přemysl Eric Janouch f1624095f8
Update copyright years 2016-09-25 22:24:35 +02:00
Přemysl Eric Janouch 61f8b134a9 Fix transcoding on OpenBSD 2016-01-14 22:52:46 +01:00
Přemysl Eric Janouch e740854dd2 Center the view on search
A lot of the time a better match is actually before the point
where we expect the entry to be.

Can be turned off with Alt-C.
2015-07-25 17:01:42 +02:00
Přemysl Eric Janouch 25366d369b Refactoring 2015-02-27 23:50:32 +01:00
Přemysl Eric Janouch 6fb83a4043 Don't let GLib/GTK+ draw messages over curses 2015-02-27 23:42:24 +01:00
Přemysl Eric Janouch 7db828f62b Handle SIGINT/SIGTERM properly 2015-02-27 23:36:56 +01:00
Přemysl Eric Janouch 10240c716a Formatting 2015-02-26 23:29:45 +01:00
Přemysl Eric Janouch 2f0852ec05 Handle search field overflow a bit better
Make sure the cursor doesn't overflow where it doesn't belong.
2015-02-24 23:52:36 +01:00
Přemysl Eric Janouch f4b29a980c Add a near-useless bar on top with bookname 2015-02-24 23:42:15 +01:00
Přemysl Eric Janouch d93b241a65 Silence a warning
We don't care if we read a byte from the pipe.
2015-02-14 06:16:17 +01:00
Přemysl Eric Janouch 61ad99b611 Make more use of xstrtoul() 2015-02-07 22:11:53 +01:00
Přemysl Eric Janouch 99116d0f70 Update information texts and copyrights 2015-02-07 21:38:27 +01:00
Přemysl Eric Janouch e1643289c5 Cancel selection confirmation when following the selection 2015-02-07 21:13:34 +01:00
Přemysl Eric Janouch a9bc1d8751 Add support for watching the primary selection
Depends on GTK+, which should make it work with all of X11, Wayland, and Mir.
2015-02-07 21:05:32 +01:00
Přemysl Eric Janouch 627248bd1f React to mouse wheel scrolling 2015-02-07 20:36:45 +01:00
Přemysl Eric Janouch 4730cc47e1 Hide the help in app_search_for_entry() 2015-02-07 20:35:09 +01:00