RolandPheasant / TailBlazer

A modern file tail utility based on Rx.Net which show cases reactive programming and Dynamic Data (see https://github.com/RolandPheasant/DynamicData)
GNU General Public License v3.0
2.23k stars 249 forks source link

Incorrect rendering (unusable) on 2nd monitor with different scale #183

Open marknuzz opened 7 years ago

marknuzz commented 7 years ago

Problem

The window does not "Repaint" in certain regions of the screen. So scrolling, highlighting, resizing the window, etc does not refresh anything outside of a given region. If I drag the window down, the stuff that is already rendered will still display, but it won't update while in that region. In my case, this occurs on the left monitor. The only areas that repaint in the left monitor are the toprightmost 870x1056 (approx.) pixel region for that monitor. My resolution on that monitor is 1080x1920.

After dragging the #2 monitor down to this location (it was dragged up slightly), the "repaintable" pixel region also moved up to the topmost 960 px region instead of 1056. image

Moving monitor #1 down to this location brought the repaintable area back to about 864px at the top. image

Changing to portrait mode did not affect this. Still 864px at the top, out of 1080. image

Changing scaling on the left monitor to 125% to match the right monitor ended up changing the region to the topmost 1080px (out of 1920), with the entire width of the left screen now allowing repainting.

Changing the right monitor to 1920x1080 with 100% scaling caused the right monitors to have areas that were not paintable (with the left monitor still having the same unpaintable regions). Changing the right monitor to 125% scaling with 1920x1080 allowed the right monitor's regions to fully repaint. Changing the main display to the left monitor and restarting, did not have any effect.

Hopefully this is an easy fix and not a bug with a library you are using :) I'm fairly busy but if you are unable to fix this anytime soon, I would be happy to give it a try, if you're able to steer me in the right direction as far as what code I should be looking at, and any caveats to setting up the dev environment.

OS

Windows 10 with newest updates High Contrast #1 theme

Monitor Settings

Monitor 1 (Right hand side, center) Main Monitor Landscape Mode 2560x1440 125% scaling Monitor 2 (Left hand side) Portrait Mode 100% scaling 1080x1920 resolution Multiple displays: Extend these displays