Merge tag '1.7.5' into wayland
This commit is contained in:
4
.github/CONTRIBUTING.md
vendored
4
.github/CONTRIBUTING.md
vendored
@@ -49,6 +49,10 @@ When adding comments to an issue make sure:
|
||||
* It is relevant to the issue.
|
||||
* It contributes to solving the issue.
|
||||
* Use :+1: :-1: emojis instead of replying 'me too' or 'I also have this.'
|
||||
* Do **NOT** ask for an update. Asking does not contribute to solving the issue
|
||||
and just annoys people with a notification. The answer is already available;
|
||||
if there is an update it will be linked/mentioned in the issue, otherwise
|
||||
there is no update.
|
||||
|
||||
|
||||
Issue high-jacking, e.g. adding a request/issue to an existing issue, is very
|
||||
|
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -14,6 +14,8 @@ body:
|
||||
|
||||
If you are unsure, please use the [discussion](https://github.com/davatorium/rofi/discussions) forum first. It is easy to upgrade a question to an issue in github.
|
||||
|
||||
If you report problems with speed in rofi, please attach a [timing trace](https://github.com/davatorium/rofi/blob/next/doc/rofi-debugging.5.markdown#timing-traces).
|
||||
|
||||
**Please do not submit reports related to wayland, see [here](https://github.com/DaveDavenport/rofi/wiki/Wayland) for more information.**
|
||||
|
||||
- type: input
|
||||
|
@@ -11,6 +11,7 @@
|
||||
# Please match the documentation and example scripts to the version of rofi used:
|
||||
|
||||
* [next version](https://github.com/davatorium/rofi)
|
||||
* [1.7.4](https://github.com/davatorium/rofi/tree/1.7.4)
|
||||
* [1.7.3](https://github.com/davatorium/rofi/tree/1.7.3)
|
||||
* [1.7.2](https://github.com/davatorium/rofi/tree/1.7.2)
|
||||
* [1.7.1](https://github.com/davatorium/rofi/tree/1.7.1)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
AC_INIT([rofi], [1.7.4], [https://github.com/davatorium/rofi/],[],[https://reddit.com/r/qtools/])
|
||||
AC_INIT([rofi], [1.7.5], [https://github.com/davatorium/rofi/],[],[https://reddit.com/r/qtools/])
|
||||
|
||||
AC_CONFIG_SRCDIR([source/rofi.c])
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
|
@@ -1,5 +1,5 @@
|
||||
project('rofi', 'c',
|
||||
version: '1.7.4+wayland1',
|
||||
version: '1.7.5+wayland1',
|
||||
meson_version: '>=0.47.0',
|
||||
license: [ 'MIT' ],
|
||||
default_options: [
|
||||
|
28
releasenotes/1.7.5/release-1.7.5.markdown
Normal file
28
releasenotes/1.7.5/release-1.7.5.markdown
Normal file
@@ -0,0 +1,28 @@
|
||||
# 1.7.5: We shell overcome
|
||||
|
||||
A quick bug-fix release to fix 2 small issues.
|
||||
|
||||
* In DMenu sync mode, the separator is left in the string.
|
||||
* On special crafted delayed input in dmenu it shows updates to the list very slow.
|
||||
It now forces to push update (if there) every 1/10 of a second.
|
||||
* In the view some of the update/redraw policies are fixed to reduced the
|
||||
perceived delay.
|
||||
|
||||
This makes it clear we need more people testing the development version to
|
||||
catch these bugs. I only use a very limited set of features myself and do not
|
||||
have the time nor energy to write and maintain a good automated test setup.
|
||||
There was one in the past that tested some basic features by running rofi,
|
||||
inputting user input and validating output. But it was not reliable and
|
||||
difficult to keep running.
|
||||
|
||||
|
||||
# Thanks
|
||||
|
||||
Big thanks to everybody reporting issues.
|
||||
Special thanks goes to:
|
||||
|
||||
* Iggy
|
||||
* Morgane Glidic
|
||||
* Danny Colin
|
||||
|
||||
Apologies if I mistyped or missed anybody.
|
@@ -237,6 +237,10 @@ static void read_input_sync(DmenuModePrivateData *pd, unsigned int pre_read) {
|
||||
char *line = NULL;
|
||||
while (pre_read > 0 &&
|
||||
(nread = getdelim(&line, &len, pd->separator, pd->fd_file)) != -1) {
|
||||
if (line[nread - 1] == pd->separator) {
|
||||
nread--;
|
||||
line[nread] = '\0';
|
||||
}
|
||||
read_add(pd, line, nread);
|
||||
pre_read--;
|
||||
}
|
||||
@@ -252,6 +256,7 @@ static gpointer read_input_thread(gpointer userdata) {
|
||||
pd->async_queue = g_async_queue_new();
|
||||
Block *block = NULL;
|
||||
|
||||
GTimer *tim = g_timer_new();
|
||||
int fd = pd->fd;
|
||||
while (1) {
|
||||
// Wait for input from the input or from the main thread.
|
||||
@@ -291,11 +296,15 @@ static gpointer read_input_thread(gpointer userdata) {
|
||||
memmove(&line[0], &line[i + 1], nread - (i + 1));
|
||||
nread -= (i + 1);
|
||||
i = 0;
|
||||
if (block && block->length == BLOCK_LINES_SIZE) {
|
||||
if (block) {
|
||||
double elapsed = g_timer_elapsed(tim, NULL);
|
||||
if ( elapsed >= 0.1 || block->length == BLOCK_LINES_SIZE) {
|
||||
g_timer_start(tim);
|
||||
g_async_queue_push(pd->async_queue, block);
|
||||
block = NULL;
|
||||
write(pd->pipefd2[1], "r", 1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
i++;
|
||||
}
|
||||
@@ -307,6 +316,7 @@ static gpointer read_input_thread(gpointer userdata) {
|
||||
read_add_block(pd, &block, line, nread);
|
||||
}
|
||||
if (block) {
|
||||
g_timer_start(tim);
|
||||
g_async_queue_push(pd->async_queue, block);
|
||||
block = NULL;
|
||||
write(pd->pipefd2[1], "r", 1);
|
||||
@@ -322,12 +332,14 @@ static gpointer read_input_thread(gpointer userdata) {
|
||||
nread = 0;
|
||||
}
|
||||
if (block) {
|
||||
g_timer_start(tim);
|
||||
g_async_queue_push(pd->async_queue, block);
|
||||
block = NULL;
|
||||
write(pd->pipefd2[1], "r", 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
g_timer_destroy(tim);
|
||||
free(line);
|
||||
write(pd->pipefd2[1], "q", 1);
|
||||
return NULL;
|
||||
|
@@ -235,6 +235,7 @@ static gboolean xcb_rofi_view_repaint(G_GNUC_UNUSED void *data) {
|
||||
// After a resize the edit_pixmap surface might not contain anything
|
||||
// anymore. If we already re-painted, this does nothing.
|
||||
|
||||
TICK_N("Update start");
|
||||
rofi_view_update(state, FALSE);
|
||||
g_debug("expose event");
|
||||
TICK_N("Expose");
|
||||
@@ -504,7 +505,7 @@ static void xcb_rofi_view_reload(void) {
|
||||
// @TODO add check if current view is equal to the callee
|
||||
if (XcbState.idle_timeout == 0) {
|
||||
XcbState.idle_timeout =
|
||||
g_timeout_add(1000 / 10, xcb_rofi_view_reload_idle, NULL);
|
||||
g_timeout_add(1000 / 100, xcb_rofi_view_reload_idle, NULL);
|
||||
}
|
||||
}
|
||||
static void xcb_rofi_view_queue_redraw(void) {
|
||||
@@ -804,6 +805,8 @@ static void xcb_rofi_view_temp_click_to_exit(RofiViewState *state,
|
||||
|
||||
static void xcb_rofi_view_frame_callback(void) {
|
||||
if (XcbState.repaint_source == 0) {
|
||||
XcbState.count++;
|
||||
g_debug("redraw %llu", XcbState.count);
|
||||
XcbState.repaint_source = g_idle_add_full(
|
||||
G_PRIORITY_HIGH_IDLE, xcb_rofi_view_repaint, NULL, NULL);
|
||||
}
|
||||
|
Reference in New Issue
Block a user