 So I've got this button OpenBugSassin to me, which is unlikely not empty. And the bug that annoys me the most right now is this bug, WidgetsOverMenu when implemented mode, blah blah blah. So I've actually managed to reproduce this bug, so I'll show it to you. If I drag my panel to the left side and then go to Edit Mode, I can zoom in and if I drag the mouse on the right, you will see that at some point the pop-up of the system tray will disappear even though it shouldn't. It should stay here so that I can actually use it. Very annoying. So how is this happening? Well, it happens on a left side panel. If we try a top panel, go Edit. It happens here as well. Let's try with the right one. Let's see. Nope. Works fine on the right one and as far as the bottom goes, it works fine here as well. I've tried it. So I noticed that, you see, you have this white overlay when you hover an applet and if I go down, it disappears. It shouldn't, which means that the bottom and the right part of the applet are broken. So this could be due to many reasons. The first of which is that you must know that the applet, which is in this case the system tray, is not actually as tall as the panel. It's slimmer and in order for the mouse input to reach the applet, even though the applet is smaller, the mouse input on the side, top, bottom, right and left of the panel, is redirected inside the panel. So it seems that this redirecting is not working. So let's try to find the code that redirects the mouse input to the applet, first of all, because stuff is very well hidden. So I think it's in KDE workspace plus my workspace and then it was something like a panel view. Yes, it was panel view. And then we've got, it was around here somewhere. Let me try to find this. And this one. So basically in this function, which is event, what we say is if mouse input is not inside the containment, which in this case is the applet, make a new mouse event, but the position shall be adjust for containment. So what seems to be happening is that either it does not notice that the mouse is outside the applet or it's not redirected. So let's actually try this theory out with a bit of dumb debugging just by saying let's try to see, first of all, if it is indeed inside the applet. So let's assign this value to, I don't know, K, and then we can return that value, but we can also print it to screen. So we are sure whether it's working or not. And to try this out, we need to compile it. So let's go to build workspace, sorry Kelly, workspace, Plasma workspace. Okay, make install. And then what should I, I think it's Plasma Shell that should be restarted. So let's go with that one. Source, perfects, Plasma Shell, replace. Okay, let's see if the debug lines are working. If K, then could debug this as, again, professional. Let's go with A and B, sorry, A and B. So this way I can know the value of K for sure. Again, trouble code, but, you know, I'm actually a Python guy or at least, I don't know, QML. C++ is quite out of my knowledge. So okay, let's see. Okay, so it's mostly A as you can see, but as we approach the top, it becomes B as well, which is weird. And if we go to the bottom, it is also A and B. Very weird. But, you know, I don't actually see any difference from the top side and the bottom side, which is what I'm looking for, because it works on the top side and doesn't on the bottom, which means that I can suppose that this is working. So let's actually try to see if it's this part. Let's assume that this part is working, return this value normally, and focus on this part, which actually does the adjustment of the mouse input. So let's actually try to queue the bag. Let's do this for sure. And then let's try and please work to print the width. The height, it's height, right? The rect... Actually, let's actually go for not the item, but the rect value. And here, let's go with top, left. Now it doesn't make sense. Top, bottom, right, left. And then the mouse input coordinates. So point X and point Y. Okay, let's try this out. Hopefully it will work out of the box. It won't, but it should mistake. Okay, queue row. Okay, so all of this doesn't work, because this is point, point, point, point. But I mean, how do I queue the bag? A real number, like? I thought that queue the bag would just spit out. Ah, because this is how I'm supposed to use queue the bag. Of course, I knew this. Damned me. Anyway, let's actually use this thing properly. It's very dumb. I knew it was like this. I don't know what... Sorry. I managed to toggle block mode earlier, but I forgot how to do it now, so back to manually adding all the lines. Okay, so let's try to see if this one worked. And I hope it did. Please. Okay, it worked. So let's try to run this. And... Oh, it's actually printing stuff. It's not printing interest. Ah, okay. Now I do see some debugging information. Of course, it only prints stuff if it's actually redirecting the mouse input, so if it's on the top and on the bottom. So what I'm getting told by this is that the top is zero. The bottom is 44. Right is 120, which makes sense. And left is zero, which means that these coordinates seem to be relative to the top left of the panel, because otherwise this zero 44 doesn't make any sense. And what I'm interested in... Okay, so this one will be contained in these two and this one will be contained. Okay. So what I'm looking for is why this one is... Of course. Okay, so the issue is that the panel is 44 in height, which means that the applet, which is smaller compared to the panel because it also has the blue margins, these blue lines are not part of the panel. The applet is smaller, but in here the height of the containment is 44 and it shouldn't. It should be that minus the margin. But it's because I'm doing some logic here. Okay, so it makes sense. So left top becomes plus the top padding and bottom becomes minus the bottom padding. So let's actually add these values here. This is right. This is bottom. This is top. Except that bottom is actually minus and right is minus, which makes sense. So let's compile it again. Sorry. Where is it? Here? Okay, compile it. I mean, it seems like it's correct. So I don't really see what's going on. Let's see if adding these values, there's something wrong. So it's 36. This looks correct. I mean, it goes from 8 to 36, meaning that it has 8 pixels of margin, which is correct as far as I'm concerned. So these 43 that it gets should become 36 and be inside of the applet. So what if the 36 pixel is actually already part of the margin and it should be 35? So if I go to bottom padding minus one like this and minus one is here as well and then minus one and minus one, maybe it's just off by one error, which might make sense. I don't see how, but trying out is never a bad idea. If it's a off by one, I'm not sure what would be the appropriate fix. I don't actually think it's off by one. So let's try to see just to make sure of that. Okay, so now it's 35. Let's see if it's still broken. And it isn't. Okay, so it was off by one. Let's try to go to a left edge to see if it's broken there. It isn't. Ah, maybe it is. That means mean. So if I move the mouse, now it seems to work nicely. Okay, so basically the 36 pixel is already part of the margin. So we've got 44 pixels. This is so professional. So as I said, we've got 44 pixels like this. Okay, makes sense. Now, we know for sure that the first eight and the last eight are margin because that's how margin is defined as eight pixels, which means that the total margin is 16, meaning that all of the other 26 pixels are given to the applet. So when we say that we Q bound between eight and we Q bound the X, sorry, the Y in this case, from eight to 44 minus eight, which is, as we all know, 36. It means that what's the spec of Q bound? Let's see if there's some weird behavior going on. I dubbed it Q bound. Okay, makes sense. It compiles to this stuff, meaning that we can actually go replace this. So min is 8, max is 36 and bar in this case is epsilon. So let's actually try to do two different use cases, one for epsilon max and one for minimum. In this case, I take the list number between these two, which of course is 36, and then the max, which is 36 again. In this case, I take the minimum, which is one, and then I take the maximum, which is eight, which all looks fine except 0, 1, 2, 3, 4, 5, 6, 7, 8. 0, 1, 2, 3, 4, 5, 6, 7, 8. Okay, the eighth pixel is within the content, but this is the 36th, which is the margin, because this is the 35th, 35th, sorry. Okay, so that's the mistake, that's stupid. It's basic mathematics. The 36th pixel is within the margin already. There's no mistake, I just need to actually apply the minus one. However, the nice, let's go with... Okay, so this is what we've done. Let's create a branch for this. Right now, let's just check. We are in master, let's check out work, fix content, mantract, I think, Nikolov. Let's go, let's add my name as well. It's minus b, nice. Get add panobi, get commit, add a minus one to make the mouse input not already erect to a margin pixel. Cool. Let's get push to origin work, Nikolov, fix content. And then we just have to create the merge request. Okay, add minus one. How do we explain this? Let's say that the input already erected gets otherwise already erected to the 36th pixel, which is a margin pixel already, whereas the 35th is the actual content, assuming a normal 44 pixel panel. And then we just say bug, and then the number of the bug. I always mess these up. Sometimes this has to go in the invent description. Sometimes it has to go to the title. Let's actually, I don't know, I'll keep it here and change the title if necessary. Okay, so let's submit the merge request. And we've already solved our first bug today. So this one is fixed. Themes with thick borders, broken panel. Okay, this is a weird bug that I don't want to address right now. Panel icon sizes don't change gradually enough. What is this about? Okay, let's see. This is about the icon size of what, as the icon size is of the task manager. I noticed that in Plasma 5.21, using the panel with the height set to 38, results in the panel icons getting bigger than before. This also means that the icon is now very close to the helets effect line. Let's try to reproduce this. So let's go with 38 in panel. Okay, yes, it is true that they are pretty big. They probably shouldn't. Nice. When reducing the panel height to 36, the icon sizes are reduced and there is more vertical panning, which is correct. This is indeed more vertical panning. Observe result. Fairly big icons with panel height at 38. Expected result. Normal size icon with panel height as 36. Can reproduce with an horizontal panel with size 38 and 54. Okay, I'm not sure what you expect me to do here. I can make a... Yeah, the... So the theory is that the task manager icon should always be as big as the kickoff icon. That's the theory at least. So let's do a quick comparison. 58 is right. 56, okay. At 54, they are indeed too big. Then they also get smaller. And then at 38, the kickoff button gets smaller, but not the task manager icons. Nice, this is an easy one. I know how to fix this. So let's go to... This one is actually a framework's bugs. I hope... I hope I know how to fix this. So the theory is that the margin of the panel is defined in the theme. So let's go to the theme. Brace. It's defined in, I don't know, widgets panel background. So we can see that the margin of the panel near the task manager is this one, the dark purple one. And this is four pixels. Nice. But the margin of the task manager is actually defined in a different file, which is the tasks.svg. I think. I think. It was around here, wasn't it? Ah, come on. It was something like this. I remember it was something like this. So my... Okay. So I thought the margin was defined here, but it isn't. Maybe because the... Maybe the margin is not defined here. And so as a margin, it takes the... eye of this element, which is three pixels instead of four. But the margin should totally be defined here. I don't remind... I don't remember, sorry, what they should be defined as. Because in the panel, they are hint top margin. I think that they need to be hint normal top margin here. I think. Let's... Let's try to go for my... guess. So let's copy the margins that we want to see. Let's turn on the grid, please. Grid. I don't remember where the grid is. Page grid, thank you. And let's put... Where is it normal? Normal is this one? No. Which one is normal? Minimize attention. Normal. Okay, this one. So let's put this here, I'll do something nicer when I know this works, so don't worry about that. So this one is called hint top margin, but should actually be called normal top margin, int normal right margin, int normal bottom margin, and then int normal left margin. Save. Yes, normal. Okay. And now I've changed something plasma framework, meaning that... Which one is the easiest way to test this? Let's actually try to compile this. So let's go to... Build. Frameworks, plasma framework. Make install. Okay, and source the graphics and... Sorry, just a second. I don't like this. Let's get back to the beginning of the album. Okay, let's actually try this out with plasma shell replace. Nothing changed, of course. Let's try to see in the task manager source code which margins I am supposed to look for. So let's go to home, the KDE source. The task manager is in... KDE workspace, plasma desktop, applets, task manager, package, contents, UI. Let's go to main.QML first, and let's look for a frame SVG item, which in this case is code task frame. Okay, but the margin is actually applied in another wide gas task.QML. Okay, and we can see that the margin of the icon box, which is the box with the task manager icon, is based on the task frame dot margins, top, bottom, blah, blah, blah, which is... And task frame is defined here, task frame, and it is widgets task, which is this one, with the normal prefix, which is this one. I am indeed correct in normal top margin. So let's start debugging the size of the icon box. Again, professional. Let's see how this goes. Let's make this bigger, and let's go with 54, which is one of the sizes with the bug. Let's restart. I need to compile plasma desktop for this to work. So let's go to KDE Build, KDE Workspace, Plasma Desktop, and make this tau this. Why is it compiling so much stuff? Okay, it compiled. So let's replace plasma. We should see a big red rectangle. Nice. Let's go see the size of these rectangles. And as we can see, it is exactly as tall as the task manager minus the top bar, which means that I'm correcting my assumption that it's using this part as the margin instead of this one. Nice. So why is it doing this? Why are you doing this to me? Let's try to... Let's try to... I don't know... When I load this one, it uses TaskFrame margins. Not TaskFrame, which is perfect normal. Okay, so... When you do this, maybe... Let's put this in a code block that returns this value. But let's also use this one to speed out the values that we are looking for. So the top, the left, and I don't know, bottom margins. We should be able to find this in the hell of all the various debug lines. Let's see what happens. Here it is. 343, 343, 343. Okay, so basically this one is 3 in size, this one is 4. So this one is 3, this one is 4. It's not trading this margin at all. Which is not something very nice of him. It should. So let's try to see in some other SVG if there's anything wrong that I'm doing. Let's take, I don't know, panel background. Dear panel background, we have thick center for thick... Dump me. It's not okay, of course. It's not int normal. And it's normal hint. Come on. Normal hint. Whoops. Come back, please come back. What happened? Come on. This one was normal int bottom margin. Nice. This one was normal hint left margin. Here we go. Let's try this out. The values are read correctly and the rectangle is as small as it should be. Very nice. So now instead of crazily resizing them these are supposed to be four by four by four. I said by four. This one is wrong. The blue grid is not helping me because it's blue on blue. Okay, four. And come on, four. This one was also slightly off. Okay. And now it should resize just like let's take off the red rectangle which is useless. If we try this out it should resize just like the kickoff. So here it's small, big, small. Big, small. And then it's small. 40 is big, 30 is small. We managed to fix this back as well. So in order to submit a fix for this I've messed up this SVG. So let's actually do a clean one. Let's go in the plasma framework. Let's close all the other SVGs without saving. Let's close this one as well. So there are too many open windows. Yes, quit. This one can also go. Let's go to let's here. So if we get branch let's actually revert everything we've just done and git reset, sorry. Like this. Now it's gone. Let's open it up with Kate. git add test.svg, git commit fixes the size of the test manager margins to be as big as the panel ones. Then git push origin work slash Nikolov fix task manager blah blah blah Let's see if new links works. Let's copy paste it into Firefox. Please thank you. This makes the test manager margins to be as big as the ones in the panel. That is four pixels always better to specify. And then it fixes this bug. So bug this one. Let's go for it. And it's already half past midnight. So I would say that our job for today is happily done. Thank you for following me in this beautiful night of debugging where I broke my test manager. You know, I'm too lazy to actually get back it to normal. So I think I just leave it as is until I reboot. Till then, see you. Have fun blah blah.